[C++] Namespaces

Pagina: 1
Acties:

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Ik zit hier met een beetje een vaag probleem. Ik kan wel om het probleem heen werken, maar niet echt verklaren.
Ik heb een programma waar ik een namespace in declareer genaamd ServerUtils. Daarin heb ik een const _bstr_t NO_ERROR declaratie die een lege string bevat (inhoud is trouwens niet echt belangrijk). Nu dacht ik altijd dat variabelen/klasses/etc binnen een namespace uniek waren, maar elke keer als ik dus de naam NO_ERROR wil gebruiken krijg ik de errors:
error C2143: syntax error : missing ';' before 'constant'
fatal error C1004: unexpected end of file found
en dan heb ik deze code in m'n cpp file:
code:
1
2
3
4
namespace ServerUtils
{
    const _bstr_t NO_ERROR( "");
}

Nu blijkt NO_ERROR gedefinieerd te zijn als 0L door Microsoft, maar ik dacht gezien het feit dat het binnen een namespace is, moet dat niet uitmaken. :?
Is het dan zo dat een define een variabele declaratie override ofzo? Lijkt me de enige logische verklaring...

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 03-09 23:48
Nou het is zo dat NO_ERROR in const _bstr_t NO_ERROR( ""); al direct door de preprocessor wordt vervangen vanwege de define. Een preprocessor weet (volgens mij) helemaal niets van namespaces. Dus als je NO_ERROR wilt gebruiken, moet je voor gebruik ervan #undef NO_ERROR neerzetten.

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Op maandag 10 juni 2002 18:11 schreef Sjaaky het volgende:
Nou het is zo dat NO_ERROR in const _bstr_t NO_ERROR( ""); al direct door de preprocessor wordt vervangen vanwege de define. Een preprocessor weet (volgens mij) helemaal niets van namespaces. Dus als je NO_ERROR wilt gebruiken, moet je voor gebruik ervan #undef NO_ERROR neerzetten.
Tja, lijkt me ook niet helemaal jovel om te doen :) Werkt opeens de helft niet meer ofzo :P
'k heb de variabele gewoon een iets andere naam gegeven, maar toch irritant... :/

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Waarom eigenlijk met een define. Het kan toch gewoon een statische klasse variabele zijn :?
NO_ERROR vind ik namelijk echt iets wat je aan een class wil hangen