C ++ - Стиль прохождение файла абонента и строки для функции (эквивалент __file__ и __line__)C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C ++ - Стиль прохождение файла абонента и строки для функции (эквивалент __file__ и __line__)

Сообщение Anonymous »

Я знаю, что мой вопрос похож на это:
Передача вызывающего абонента __file__ __line__ без использования макроса < /p>

Но мне интересно, почему нет C ++, эквивалентного файла вызывающего и линии. Использование макроса устарело, но когда я хочу передать файл вызывающего абонента и строить функцию, у меня возникнут проблемы по двум причинам: 1. Аргументы по умолчанию (трудно заменить все виды вызовов на макрос), 2. Макрос разбивает применение имени члена класса. (Макро StartTimer будет глобальным) Это можно сделать так: < /p>

void startTimer(int type, int id=0, string file = _CALLER_::FILE, int line = _CALLER_::LINE)
< /code>

Если компилятор, в поисках функциональных вызовов Starttimer, может заменить параметр идентификатора на 0, где он не упомянут, следует заменить файл и строить на соответствующие Caller < /em>, что в этом примере зависит от файла, обработанного и строка, где вызов - что -то, что комполирующее значение знает, пока не является парсом. /> Знание вызывающего абонента функции члена может быть полезно для отладки - на каком файле/строке что -то было вызвано, что приводит к проблеме позже.

Подробнее здесь: https://stackoverflow.com/questions/230 ... f-file-and
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»