C++ C++;17类内定义的扣减指南在类内无效,但在类外有用

C++ C++;17类内定义的扣减指南在类内无效,但在类外有用,c++,c++17,template-argument-deduction,deduction-guide,C++,C++17,Template Argument Deduction,Deduction Guide,不包含模板参数的第二个演绎指南在课堂内外都有效 template<typename Ts> overloaded(Ts)->overloaded<Ts>; 过载(A)->过载; 谁能告诉我为什么 VisualStudio 2019 ,C++标准是代码> C++ 17 .< 谢谢。被clang接受,可能是msvc中的一个bug。无法复制:我在g++-std=c++17时出现编译错误->Test::重载”必须在命名空间范围内声明此问题似乎与以下问题非常相关:从答

不包含模板参数的第二个演绎指南在课堂内外都有效

template<typename Ts>
overloaded(Ts)->overloaded<Ts>;
过载(A)->过载;
谁能告诉我为什么

<我的IDE是代码> VisualStudio 2019 ,C++标准是代码> C++ 17 .<
谢谢。

被clang接受,可能是msvc中的一个bug。无法复制:我在
g++-std=c++17时出现编译错误->Test::重载”必须在命名空间范围内声明此问题似乎与以下问题非常相关:从答案来看,它似乎是
gcc
msvc
中的一个bug。鉴于@parktomatomi的评论,也许您可以提供有关Visual Studio版本的更多详细信息?x86还是x64?确切的版本号是多少?
template<typename Ts>
overloaded(Ts)->overloaded<Ts>;
overloaded(A)->overloaded<A>;