// RUN: %clang_cc1 -fsyntax-only -verify -std=c++2a %s template struct is_same { static constexpr bool value = false; }; template struct is_same { static constexpr bool value = true; }; template concept SameHelper = is_same::value; template concept same_as = SameHelper && SameHelper; namespace deferred_instantiation { template constexpr X do_not_instantiate() { return nullptr; } struct T { template X> explicit(do_not_instantiate()) T(X) {} T(int) {} }; T t(5); // expected-error@17{{cannot initialize}} // expected-note@20{{in instantiation of function template specialization}} // expected-note@30{{while substituting deduced template arguments}} // expected-note@30{{in instantiation of function template specialization}} T t2(5.0f); } // namespace deferred_instantiation