Является ли выражение `requires { typename Enable_if_t<fun_v<T>>; }` то же самое, что `fun_v<T>` "по определению" для люC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Является ли выражение `requires { typename Enable_if_t<fun_v<T>>; }` то же самое, что `fun_v<T>` "по определению" для лю

Сообщение Anonymous »

Я читаю «Полное руководство по C++20» Джосуттиса и думаю, что усвоил это предложение, подобное приведенному в шаблоне ниже
< pre class="lang-cpp Prettyprint-override">

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

template
requires requires { typename std::remove_const_t; }
…
совершенно бесполезен, поскольку для его разрешения требуется true, поскольку remove_const_t всегда возвращает тип, если ему задан тип.
Однако я рассудил, что это не так, например, для Enable_if, поэтому я придумал

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

requires { typename std::enable_if_t; }
Теперь, поскольку выражение require просто проверяет правильность формирования требований в {…}, я думаю, что это в основном и делает следующее
p>

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

std::is_integral_v
Мне это кажется довольно бесспорным, но я спрашиваю, потому что я новичок в концепциях C++ и вполне возможно, что я совершаю ошибку.


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

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

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

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

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

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

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