Заменить макро -строку #define на встроенный контейкспр?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Заменить макро -строку #define на встроенный контейкспр?

Сообщение Anonymous »

Что такое современный синтаксис C ++ для переписывания этого макроса в качестве contexpr?

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

#define world "world"
< /code>
Некоторые макросы вызвали проблемы, потому что токен макроса иногда является довольно распространенным словом.  Ни один из этих макросов строковых литералов не должен быть макросами.namespace string_constant {
inline constexpr auto world = "world";
}
Это работает, но это не совсем правильное, потому что мир-это констальный char*, а не Const char (&) [6] массив (спасибо Jarod42 за коррекцию).
Я мог бы сделать это:
inline constexpr decltype(auto) world = "world";
< /code>
, прежде чем я начну вносить много изменений, идущих по неправильному пути, я подумал, что я должен выяснить правильный способ сделать это. Потому что (давным -давно) макросы были сделаны из -за некоторых из строк, имеющих опечатки в них в исходном коде, и кто -то прошел и заменил все литералы in situ < /em> строковых строк на макросах. буквальное объединение (хороший вызов, Jarod42).


Подробнее здесь: https://stackoverflow.com/questions/797 ... -constexpr
Ответить

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

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

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

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

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