Заменить макро -строку #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

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