ПрограммированиеФорумОбщее

C++ ifdef / ifndef (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
22:32, 19 окт 2010

Pushkoff
> не будет работать, будет ошибка линковки...
ну тогда все свое загонять в немспейс

#16
0:15, 20 окт 2010

Trinimac
Напрямую (в лоб ) не получится.

Когда объявляешь свой "опасный" тип, то тут же "на месте"  объявляешь и "сопутствующий"  макрос.

//...

//  declare type and macros ...
typedef  int     mytype;   #define MYTYPE


// .....


// check ..
#ifdef  MYTYPE
  // !  declare prev

#else
 //!  none decl

#endif


//.....

хотя удалить определение типа (как макрос #undef xxx )... низя .

#17
0:49, 20 окт 2010

Trinimac
>не поверишь но иногда бывают конфликты, когда ты пытаешься определить тип, который уже объявлен
>например у меня есть тип bitset и он объявлен как typedef unsigned int bitset
>А вот что если я подключу какую-то стороннюю либу в которой будет typedef unsigned long bitset?

... ясно
но  ты же понимаешь на этапе первой сборки, что такой тип уже есть и исользуешь имеющийся, либо меняешь название своего.

что может дать использование ifdefine ... ? можно ошибиться на том что тип объявлен, свой не объявляешь, а имеющийся не подходит ...

наверное выход действительно через namespace

#18
1:09, 20 окт 2010

Неймспейсы, тысячи их.
Они хорошие.
Делай

namespace trinimac {
  typedef ?????? bitset;
}
#19
1:45, 20 окт 2010

черт и почему Кен и Ричи не могли вместо ужасных unsigned int, signed int придумать что-нить покороче вроде uint sint :(

#20
1:46, 20 окт 2010

Trinimac
stdint.h подключай уже

#21
1:49, 20 окт 2010

Trinimac
> черт и почему Кен и Ричи не могли вместо ужасных unsigned int, signed int
> придумать что-нить покороче вроде uint sint :(

namespace you_namespace
{
    typedef unsigned int u32;
    typedef signed int s32;
}

Тадам

#22
1:53, 20 окт 2010

KpeHDeJIb
Подключил
fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory

MATov
не хочу неймспейсы
запись аля you_namespace::u32 var ничють не лучше unsigned int var :(

#23
3:17, 20 окт 2010

Все нашел компромис
Теперь у меня в коде такая хрень:

typedef signed char xeSint8;
typedef signed short xeSint16;
typedef signed int xeSint32;

typedef unsigned char xeUint8;
typedef unsigned short xeUint16;
typedef unsigned int xeUint32;

typedef float xeSingle;
typedef double xeDouble;

typedef unsigned int xeBitset;
typedef signed int xeBinary;

typedef char xeAchar;
typedef wchar_t xeWchar;

enum xeResult
{
   xeResult_Success = 0x00000001,
   xeResult_Unknown,
   xeResult_InvalidArguments,
   xeResult_InvalidOperation,
   xeResult_UnsupportedFeature,
   ...
};
#24
6:01, 20 окт 2010

kvakvs
> Неймспейсы, тысячи их.
плюсец.

Trinimac
> не хочу неймспейсы
> запись аля you_namespace::u32 var ничють не лучше unsigned int var :(

ну а зачем: namespace  blabla_trulala_pumpurum {....}

сделай короткое: namespace tm  или  tmac  и всё.

у меня ks. 
И ничего..  не напрягает.

#25
7:43, 20 окт 2010

Pushkoff
> не будет работать, будет ошибка линковки...

Почему? У меня работает такое...

#26
8:56, 20 окт 2010

kvakvs
> Неймспейсы, тысячи их.
> Они хорошие.
они хорошие когда в пределах десятка - а когда счёт на сотни  ...

#27
9:17, 20 окт 2010

innuendo
> они хорошие когда в пределах десятка - а когда счёт на сотни  ...
  (доксиген && поиск к нему )

#28
11:12, 20 окт 2010

Trinimac
> Теперь у меня в коде такая хрень:
Ну вот, а только-только хотел посоветовать: "Собственный префикс, тыщи их (а точнее, только один). Они хорошие, значительно лучше неймспейсов." :)

#29
11:15, 20 окт 2010

ksacvet777
> > они хорошие когда в пределах десятка - а когда счёт на сотни ...
> (доксиген && поиск к нему )
имеется ввиду когда кодишь - то 100-500 namespaces убивают желание что-либо делать дальше :)

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.