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

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

Сообщение Anonymous »

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

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

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

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

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