Параметр по умолчанию может быть подмножеством полного набора выражений. Это должно быть связано во время компиляции и в месте объявления параметра по умолчанию. Это означает, что может быть вызов функции или вызов статического метода, и это может взять любое количество аргументов, насколько они - константы и/или глобальные переменные или статические переменные класса, но не членские атрибуты.
то, что это связывается во время компиляции и в месте, где функция объявляется также средствами что, если это использует переменную, что переменная будет использоваться даже если различные переменные тени оригинал в месте вызова функции.
// Code 1: Valid and invalid default parameters
int global = 0;
int free_function( int x );
class Test
{
public:
static int static_member_function();
int member_function();
// Valid default parameters
void valid1( int x = free_function( 5 ) );
void valid2( int x = free_function( global ) );
void valid3( int x = free_function( static_int ) );
void valid4( int x = static_member_function() );
// Invalid default parameters
void invalid1( int x = free_function( member_attribute ) );
void invalid2( int x = member_function() );
private:
int member_attribute;
static int static_int;
};
int Test::static_int = 0;
// Code 2: Variable scope
int x = 5;
void f( int a );
void g( int a = f( x ) ); // x is bound to the previously defined x
void h()
{
int x = 10; // shadows ::x
g(); // g( 5 ) is called: even if local x values 10, global x is 5.
}
Хорошо - вот тонкое:
Это конкретное представление было настроено как тип возврата для хранимой процедуры, которую нужно было настроить как импорт функции в контейнере сущностей модели.
Я обновил это представление, чтобы оно соответствовало новым требованиям к отчетности, не осознавая его значения для импорта функций. Дополнительные поля не являются частью набора данных, распознаваемого для этой цели, поэтому он не смог найти совпадение ни для одного из них.
Я продублировал представление и добавил к нему суффикс «Отчет», а затем вернул исходное значение обратно к это ожидаемый набор возвращаемых полей.
Вуаля!
Пожалуйста, проверьте это сообщение в блоге. Проверьте первый комментарий Дивана Моллера. Может быть вам полезно.