gpt4 book ai didi

c++ - Visual Studio 2019 C++对概念的支持-成功编译并出现错误:为什么?

转载 作者:行者123 更新时间:2023-12-01 14:53:18 25 4
gpt4 key购买 nike

我已经安装了Visual Studio的最新版本以测试概念。我尝试例如:

struct One{};
struct Two{
std::string ToString() const
{
return "BAM!";
}
};

template<typename T>
concept hasToString = requires(T t) { t.ToString(); };

template <class T>
void DoString(T& t)
{
if constexpr (hasToString<T>)
{
std::cout << t.ToString() << std::endl;
}
else
{
std::cout << "not available" << std::endl;
}
}

int main(int argc, char** argv)
{
One one{};
Two two{};
DoString(one);
DoString(two);
return 0;
}

这会编译(使用/ std::c++ latest),并给出我期望的输出:
not available
BAM!

但是,Visual Studio社区c++ 16.5.0给出1错误(即使它完成了编译):

标识符“concept”未定义

我不知道为什么?根据下面的帖子,应该支持概念。

https://devblogs.microsoft.com/cppblog/c20-concepts-are-here-in-visual-studio-2019-version-16-3/

那我做错什么了吗?什么?还是此错误?如果是,是否有方法可以抑制错误,直到MS修复该错误为止?

最佳答案

您正在描述一个来自Intellisense的错误,该引擎在您键入时在代码编辑器中执行红色波浪线(并在开发时填充“实时”错误列表)。

尽管这是在编译代码,但实际上使用的引擎与实际构建项目并生成可执行文件的引擎不同。

根据the feature announcement you linked to的说法,它还不是最新的(对于一个新功能而言,这并不离谱):

IntelliSense support is not currently available



忽视。

关于c++ - Visual Studio 2019 C++对概念的支持-成功编译并出现错误:为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60777210/

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