https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101034
Bug ID: 101034 Summary: wrong constraint in std::any's constructor Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: hewillk at gmail dot com Target Milestone: --- In any#L208: template <typename _Tp, typename _Up, typename... _Args, typename _VTp = decay_t<_Tp>, typename _Mgr = _Manager<_VTp>, __any_constructible_t<_VTp, initializer_list<_Up>, _Args&&...> = false> explicit any(in_place_type_t<_Tp>, initializer_list<_Up> __il, _Args&&... __args) It should be __any_constructible_t<_VTp, initializer_list<_Up>&, _Args&&...> = false>. https://godbolt.org/z/afhTbM3b1 #include <any> struct S { S(std::initializer_list<int>&, int) {} }; int main() { std::any a(std::in_place_type<S>, {0}, 0); }