Конкурсивное отделение рекурсивной функции contexpr с аргументомC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Конкурсивное отделение рекурсивной функции contexpr с аргументом

Сообщение Anonymous »

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

template
consteval auto foo(std::string_view sv)
{
if constexpr (i != vs::field_count()){
constexpr auto name = vs::get_name();
if constexpr (sv == name) //'constexpr' here not allowed, but needed for type deduction
return vs::get_pointer();
else
return foo(sv);

} else
return (int T::*)nullptr;
}
< /code>
all vs :: < /code> Функции contexpr.

foo
вызывается с помощью ContexPR Country STD :: String_view .
Я понимаю, что я не могу поместить Contexpr ключевое слово перед условием (SV == name) , потому что SV не может быть выражением времени компиляции (хотя я установил константу функции . contexpr не позволяет думать, что компилятор тип возврата одинаков. чем (int t ::*) nullptr , поэтому мне нужно вывернуть тип возврата.

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

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

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

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

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

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