gpt4 book ai didi

c++ - Qt C++ 在函数模板中使用约束

转载 作者:行者123 更新时间:2023-11-28 04:53:16 27 4
gpt4 key购买 nike

我尝试使用 Qt 声明函数模板以仅计算 quint8quint16quint32 的一些值。我写道:

template<typename T>
concept CrcCompatible = typeid(T) == typeid(quint8) || typeid(T) == typeid(quint16) || typeid(T) == typeid(quint32);

template<typename T> requires CrcCompatible<T>
T crc(T initial, T polynomial, T *pcBlock, T len, bool isFinalXor);

但是conceptrequires 关键字没有作为语法的一部分突出显示。当我尝试编译此代码时出现以下错误:

concept does not name a type
...
requires does not name a type

我第一次尝试在 Qt 中使用模板。我不明白如何修复此错误,以及为什么编译器无法理解关键字。

在项目文件中,我添加了 QMAKE_CXXFLAGS += -std=c++11CONFIG += c++11但没有任何改变。

我不明白我应该在谷歌上问什么,所以我找不到答案...

最佳答案

我想问题是 C++11 不支持概念。从我在 documentation 中可以看到, 概念只会是 available in C++20 .无论如何,如果现在某些编译器支持它们,您应该通过 --std=c++11 以外的其他标志启用此支持。

关于c++ - Qt C++ 在函数模板中使用约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47726037/

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