Определение строковых литералов-констант один раз как char const* и wchar const*C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Определение строковых литералов-констант один раз как char const* и wchar const*

Сообщение Anonymous »

Из-за ограничений домена, с которым я работаю, мне нужно определить строковые литералы как char const* и wchar const*, например:

Код: Выделить всё

constexpr auto C_VAR_NAME_1 = "MY_VAR_NAME_1";
constexpr auto C_VAR_NAME_2 = "MY_VAR_NAME_2";
...

constexpr auto W_VAR_NAME_1 = L"MY_VAR_NAME_1";
constexpr auto W_VAR_NAME_2 = L"MY_VAR_NAME_2";
...
У меня много констант, и я бы не хотел дважды определять одно и то же фактическое имя переменной (что может привести к некоторой опечатке и, следовательно, к несовпадающим именам), поэтому я использовал такой макрос:

Код: Выделить всё

#define WTEXT_IMPL(name) L##name
#define WTEXT(name)      WTEXT_IMPL(name)

#define MACRO_VAR_NAME_1 "MY_VAR_NAME_1"
#define MACRO_VAR_NAME_2 "MY_VAR_NAME_2"
...

constexpr auto C_VAR_NAME_1 = MACRO_VAR_NAME_1;
constexpr auto C_VAR_NAME_2 = MACRO_VAR_NAME_2;
...
constexpr auto W_VAR_NAME_1 = WTEXT(MACRO_VAR_NAME_1)
constexpr auto W_VAR_NAME_2 = WTEXT(MACRO_VAR_NAME_2)
...
Это работает, но, если возможно, я бы хотел избавиться от макросов; поэтому мой вопрос: можно ли добиться того же результата во время компиляции, используя простой стандарт C++ без макросов? Заранее благодарю за помощь.

Подробнее здесь: https://stackoverflow.com/questions/589 ... char-const
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Const char* против const char[]
    Anonymous » » в форуме C++
    0 Ответы
    161 Просмотры
    Последнее сообщение Anonymous
  • В C ++, когда использовать WCHAR, а когда использовать char
    Гость » » в форуме C++
    0 Ответы
    38 Просмотры
    Последнее сообщение Гость
  • В чем разница между const int *, const int * const и int * const?
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • IOS: локализация многострочных строковых литералов
    Anonymous » » в форуме IOS
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как разрешить 'std :: __ cxx11 :: basic_ostringstream <char, std :: char_traits <char>, std :: allocator <char>> :: basi
    Anonymous » » в форуме C++
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»