информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Портрет посетителяГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Раздача вредоносных CPU-Z и HWMonitor 
 На GitHub пугают ложными предупреждениями... 
 Атака на пользователей больших... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[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




Rambler's Top100
Рейтинг@Mail.ru


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