Могу ли я по умолчанию аргумент функции установить значение __FILE__ в вызывающей - PullRequest
6 голосов
/ 12 августа 2010

Могу ли я иметь в C ++ аргумент по умолчанию для функции, которая по умолчанию равна __PRETTY_FUNCTION___, ___FILE___ и ___LINE__, как определено в точке вызывающего абонента, а не в той точке, где значения по умолчанию предоставляются в заголовочном файлебез использования макросов?

Ответы [ 3 ]

5 голосов
/ 12 августа 2010

Вы не можете, но вы можете добиться этого поведения с помощью дополнительного макроса. Например:

#DEFINE THROW(e) throwException(e, __FILE__, __LINE__);

На примечании стороны, __PRETTY_FUNCTION__ не является стандартным.

1 голос
/ 12 августа 2010

Нет. Макросы раскрываются в строке источника, где они встречаются.

0 голосов
/ 12 августа 2010

Возможно, вы можете ... но определенно не с тем ограничением, которое вы упомянули (без макросов).

...