J'ai le code suivant :
#include
class A;
int main()
{
std::cout << std::is_constructible::value << std::endl;
}
Lorsque j'utilise GCC 8.3, ce code compile. Cependant, lorsque j'utilise Clang 8.0, j'obtiens une erreur de compilation indiquant que les types incomplets ne peuvent pas être utilisés dans les traits de type.
Lequel est correct ? Ai-je le droit d'utiliser is_constructible
sur un type incomplet (avec une valeur attendue de false
), ou ne suis-je pas autorisé à le faire ?