https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
clang is failing because of "requirement 'is_constructible_v<Bar::Foo>' was not
satisfied [with _Tp = Bar::Foo, _Args = <>]"
But it seems like it should be true.  

from https://en.cppreference.com/w/cpp/types/is_constructible:
"If T is an object or reference type and the variable definition T
obj(std::declval<Args>()...); is well-formed, provides the member constant
value equal to true. In all other cases, value is false.
For the purposes of this check, the variable definition is never interpreted as
a function declaration, and the use of std::declval is not considered an
odr-use. "

So the question becomes why is std::is_constructible<Bar::Foo>::value is false.

Reply via email to