Вы могли бы подумать, что std: :is_constructible было бы достаточно близко (кроме того факта, что он также проверяет разрушаемость, чего в идеале мне бы хотелось избежать), но, видимо, это не удается:
Код: Выделить всё
#include
using U = int;
enum T : U { };
static_assert(std::is_constructible::value, "error"); // fails
static_assert(std::is_convertible::value, "error"); // fails
Это также заставляет меня задаться вопросом, что другие крайние случаи, которые я, возможно, пропустил... понятия не имею.
Как правильно проверять исключительно конструктивность с помощью синтаксиса T(...), в идеале с использованием стандартных признаков и с минимальным количеством ложноположительных или ложноотрицательных результатов возможно?
Подробнее здесь: https://stackoverflow.com/questions/787 ... -negatives
Мобильная версия