У меня есть следующий код:
#include <iostream>
class A;
int main()
{
std::cout << std::is_constructible<A>::value << std::endl;
}
Когда я использую GCC 8.3 (см здесь для живого примера), этот код компилируется. Однако, когда я использую Clang 8.0 (см здесь для живого примера), я получаю ошибку компиляции , что неполные типы не могут быть использованы в чертах типа. Который правильный? Могу ли я использовать is_constructible
на неполном типа (с ожидаемым значением false
), или я не разрешается?