Передача строкового литерала в параметр массива символов шаблонаC++

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

Сообщение Anonymous »

Библиотека CTRE способна анализировать и проверять регулярные выражения во время компиляции, используя такой синтаксис, как ctre::match(text_to_search). Я знаю, что этот синтаксис поддерживается только в C++20, и это нормально, но я не могу использовать строковые литералы таким образом, что бы я ни пытался. Вот очень простой пример:

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

// The compiler refuses to pass string literals to STR in this compile time version.
template  constexpr int to_int_compile_time()
{
return STR[0] - '0';
}

// It has no problems passing the string literal to str in this version.
int to_int_runtime(char const str[2])
{
return str[0] - '0';
}
Вызов to_int_runtime("0") работает нормально, но to_int_compile_time() жалуется, что для этого шаблона нельзя использовать строковые литералы параметр. Как следует написать to_int_compile_time, чтобы строковый литерал можно было передать в параметр шаблона массива символов?


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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