>_COUNTER_есть в GCC кажеться с 2.7.3, в Microsoft C++
> 13.0 (VC 7.0) и в Intel C++ 7.0 > Реализован он внутри компилятора, и "эмулировать" по > другому не получится. > > Может удастся использовать_LINE_?
В VC7.0 есть макрос_COUNTER_ Во всяком случае так сказано в MSDN.
Под рукой нет VC7.0, работаю в VC6.0, а макрос нужен.
Подскажите, как реализован этот макрос. Если можно, то прямо кусок его кода.
Или же подскажите, как др. образом генерить уникальные имена при предкомпиляции?
[C++] Может удастся использовать __LINE__ ?16.01.03 19:37 Автор: leo <Леонид Юрьев> Статус: Elderman
_COUNTER_есть в GCC кажеться с 2.7.3, в Microsoft C++ 13.0 (VC 7.0) и в Intel C++ 7.0
Реализован он внутри компилятора, и "эмулировать" по другому не получится.
Может удастся использовать_LINE_?
[C++] Может удастся использовать __LINE__ ?16.01.03 19:42 Автор: Green Статус: Незарегистрированный пользователь
>_COUNTER_есть в GCC кажеться с 2.7.3, в Microsoft C++
> 13.0 (VC 7.0) и в Intel C++ 7.0 > Реализован он внутри компилятора, и "эмулировать" по > другому не получится. > > Может удастся использовать_LINE_?
> В VC7.0 есть макрос_COUNTER_ > Во всяком случае так сказано в MSDN. > Под рукой нет VC7.0, работаю в VC6.0, а макрос нужен. > Подскажите, как реализован этот макрос. Если можно, то > прямо кусок его кода. > Или же подскажите, как др. образом генерить уникальные > имена при предкомпиляции?
У меня тоже нет VC7 - го. Вот строчка из MSDN-а:
Microsoft-Specific Predefined Macros
Macro Description
__COUNTER__: Expands to an integer starting with 0 and incrementing by 1 every time it is used
---
Короче, это предопределенный макрос (типа_DATE__FILE_и т.д.) и раскрывается самым компилером, а реализовать счетчик стандартными C-шными или C++-нутыми средствами невозможно. Везде, где мне надо было уникальное имя я или использовал комбинацию предопределенных макросов, определенных для этой версии. В частности в большинстве случаев проект можно написать так, чтоб работал макрос_LINE_ Для этого можно все файлы в которых нужно будет раскрытие уникального имени начинать с #line xxx, где xxx отодвигать для каждого проекта на дцать.
Но сам я просто определял макрос с параметром и не ленился передавать уникальный номер вручную