информационная безопасность
без паники и всерьез
 подробно о проекте
Страшный баг в WindowsВсе любят медПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Хакеры начали эксплуатировать критическую... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Может удастся использовать __LINE__ ? 16.01.03 19:37  Число просмотров: 1217
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
_COUNTER_есть в GCC кажеться с 2.7.3, в Microsoft C++ 13.0 (VC 7.0) и в Intel C++ 7.0
Реализован он внутри компилятора, и "эмулировать" по другому не получится.

Может удастся использовать_LINE_?
<programming>
[c++] как реализован макрос __counter__ ? 16.01.03 13:04  
Автор: Green Статус: Незарегистрированный пользователь
<"чистая" ссылка>
В 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_?

Пришлось использовать_LINE_

#define UNIQ2(pref,line) pref##line
#define UNIQ1(pref,line) UNIQ2(pref,line)
#define UNIQ(pref) UNIQ1(pref_LINE_
[C++] Скорее всего никак 16.01.03 15:40  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> В 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 отодвигать для каждого проекта на дцать.
Но сам я просто определял макрос с параметром и не ленился передавать уникальный номер вручную
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach