gpt4 book ai didi

c++ - 'std::vector' : 'U64' is not a valid template type argument for parameter '_Ty'

转载 作者:行者123 更新时间:2023-12-02 11:03:14 27 4
gpt4 key购买 nike

我有一个头文件SomeDefines.h,其中包括

#define U64 unsigned long long
#define U16 unsigned short

在Myclass.h中,我在顶部 #include SomeDefines.h

在Myclass声明中,我有一个函数
bool someFunc(const std::vector<U64>& theVector);

和一个成员变量
tbb::atomic someNumber;

在Visual Studio 2012中进行编译时,出现错误
error: 'U64': undeclared identifier
error C2923: 'std::vector': 'U64' is not a valid template type argument for parameter '_Ty'

如果我将 U64替换为 unsigned long long,错误就会消失
bool someFunc(const std::vector<unsigned long long>& theVector);

我以为编译器会看到 #define U64 unsigned long long并将 U64替换为 unsigned long long

为什么我收到 U64而不是 U16的这些错误?

最佳答案

#define不是创建新类型的好主意。首选typedefusing:

typedef unsigned long long U64;
// or:
using U64 = unsigned long long;

关于c++ - 'std::vector' : 'U64' is not a valid template type argument for parameter '_Ty' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28485960/

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