Определен ли выше typedef или нет?
От: TYuD  
Дата: 14.01.10 18:50
Оценка:
Мелочный вопрос, но давно мешается и не решился пока.
Если, например, определить:
typedef int int32;
а где-то вверху (в инклудах) int32 уже определен, то компилятор ругнется.
Хотелось бы чего-то такого (тут некрасиво, просто идея):
  #ifndef INT32
    #define INT32
    typedef int int32;
  #endif

typeid тоже не годится — для встраиваемых систем не поддерживается.

Подкиньте идейки, пожалуйста.
Re: Определен ли выше typedef или нет?
От: Vamp Россия  
Дата: 14.01.10 18:54
Оценка:
TYD>Подкиньте идейки, пожалуйста.
Я чувствую, что SFINAE тут можно попробовать прикрутить. Но сдается мне, это будет стрельба из пушки по воробьям.
Да здравствует мыло душистое и веревка пушистая.
Re: Определен ли выше typedef или нет?
От: Lorenzo_LAMAS  
Дата: 14.01.10 19:27
Оценка:
Ты на С пишешь? На С++ тайпдеф можно определять дважды (у тебя он ведь один и тот же?)
Of course, the code must be complete enough to compile and link.
Re[2]: Определен ли выше typedef или нет?
От: TYuD  
Дата: 14.01.10 20:15
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Ты на С пишешь? На С++ тайпдеф можно определять дважды (у тебя он ведь один и тот же?)

Виноват. Вот уточненный пример:
namespace x{ typedef int int32; }
using x::int32;
typedef int int32;
Re[2]: Определен ли выше typedef или нет?
От: TYuD  
Дата: 14.01.10 20:17
Оценка:
Здравствуйте, Vamp, Вы писали:
TYD>>Подкиньте идейки, пожалуйста.
V>Я чувствую, что SFINAE тут можно попробовать прикрутить. Но сдается мне, это будет стрельба из пушки по воробьям.
Не слышал об таком SFINAE. Чего это?
Re[3]: Определен ли выше typedef или нет?
От: Lorenzo_LAMAS  
Дата: 14.01.10 21:08
Оценка:
TYD>Виноват. Вот уточненный пример:
TYD>
TYD>namespace x{ typedef int int32; }
TYD>using x::int32;
TYD>typedef int int32;
TYD>


он тоже компилируется без ошибок, и что?
Of course, the code must be complete enough to compile and link.
Re[4]: Определен ли выше typedef или нет?
От: TYuD  
Дата: 14.01.10 21:36
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>он тоже компилируется без ошибок, и что?
Builder не компилирует.
Re[5]: Определен ли выше typedef или нет?
От: blackhearted Украина  
Дата: 15.01.10 09:42
Оценка: +1
Здравствуйте, TYuD, Вы писали:

TYD>Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>>он тоже компилируется без ошибок, и что?
TYD>Builder не компилирует.

Выбрось билдер
Re[6]: Определен ли выше typedef или нет?
От: TYuD  
Дата: 15.01.10 19:43
Оценка:
Здравствуйте, blackhearted, Вы писали:
B>Выбрось билдер
Отчасти согласен, но к сожалению есть проекты, в которых менять инструментарий уже поздно
Re[7]: Определен ли выше typedef или нет?
От: Lorenzo_LAMAS  
Дата: 16.01.10 10:45
Оценка:
Здравствуйте, TYuD, Вы писали:

TYD>Здравствуйте, blackhearted, Вы писали:

B>>Выбрось билдер
TYD>Отчасти согласен, но к сожалению есть проекты, в которых менять инструментарий уже поздно

а с какой целью тайпдеф сначала помещен в пространство имен, а затем _в_ _заголовке_ помещено юзинг объявление с этим тайпдефом?
Of course, the code must be complete enough to compile and link.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.