【发布时间】:2019-11-15 06:48:28
【问题描述】:
以下代码 sn-p 在 C++11/14/17 标准下使用 GCC 9.1 和 Clang 6.0 编译得很好,但拒绝使用 Visual Studio 2019 编译。我可以将 getDummies() 的返回更改为 @987654322 @ 和 VS 将使用 C++14/17 标准进行编译,但这会破坏所有编译器对 C++11 的兼容性,我需要保留这一点。
#include <cstdlib>
#include <utility>
template<typename T>
class Dummy
{
public:
//static auto getDummies() // Works but breaks C++11 compatibility
static std::pair<Dummy<int>, Dummy<int>> getDummies()
{
return std::make_pair(Dummy<int>{}, Dummy<int>{});
}
};
int main()
{
auto dummies = Dummy<int>::getDummies(); // Error C2079
return EXIT_SUCCESS;
}
【问题讨论】:
标签: c++ visual-studio visual-studio-2019