Я также хочу различать прямую инициализацию и инициализацию копирования и поэтому написал следующие концепции:
Код: Выделить всё
template
concept can_direct_init_from = requires { A{std::declval()}; };
template
concept can_copy_init_from = requires { A a = std::declval(); };
Код: Выделить всё
std::convertible_toКроме того, моя версия неправильно сформирована:
ошибка: ожидаемое первичное выражение перед 'a'
AFAU, я не могу «объявить» переменную внутри предложения `requires.
Есть ли способ проверить, «можно ли копирование инициализировать из»? Возможно, исправив мою концепцию?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ialization
Мобильная версия