gpt4 book ai didi

c++ - Visual Studio 2017 15.9.13 无法使用自动 C++ 模板

转载 作者:行者123 更新时间:2023-11-30 01:34:03 25 4
gpt4 key购买 nike

大约一个小时前,我为 C++ 桌面和 Linux 开发安装了 visual studio 2017我尝试了这段使用 c++17 自动模板的代码,但很惊讶它给出了一条错误消息:

Error C3533 a parameter cannot have a type that contains 'auto'

这是导致问题的代码

template <class T, T null_value, bool no_negative, auto Deleter>
struct HandleHelper
{
using pointer = HandleWrapper<T, null_value, no_negative>;
void operator(pointer p)
{
Deleter(p);
}
};

在 visual studio 2015 之前,由于缺少 c++17 支持,我使用了类似的东西:

template <class T, T null_value, bool no_negative, class DelType, DelType Deleter>
struct HandleHelper
{
using pointer = HandleWrapper<T, null_value, no_negative>;
void operator(pointer p)
{
Deleter(p);
}
};

但自动模板看起来更优雅

最佳答案

确保您在项目的属性页中设置了正确的“C++ 语言标准”。 VS 2017 的默认值是 C++14

右键单击您的项目并选择“属性”。然后展开左侧 TreeView 中的 C/C++ 节点。从展开的菜单选项中选择“语言”。检查“C++ 语言标准”是否设置为 ISO C++17 标准 (/std:c++17)

如果为空,它将默认为 C++14

关于c++ - Visual Studio 2017 15.9.13 无法使用自动 C++ 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56953117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com