gpt4 book ai didi

c++ - 在 C++ 中将字符串作为模板参数传递

转载 作者:行者123 更新时间:2023-11-28 02:40:28 25 4
gpt4 key购买 nike

我试图将一个字符串作为 C++ 模板参数传递,但我似乎无法让它工作。作为记录,我正在使用 SystemC 库(因此所有的 sc_xxx 东西)。根据this answer ,我在做什么应该有效,但我看不出我做错了什么。编译器告诉我“filePath 不能出现在常量”表达式中。任何帮助将不胜感激。

main.cpp

int sc_main(int argc, char* argv[])
{
const char filePath[] = "test.txt";
Interconnect<sc_uint<32>, filePath, 10> myInterconnect;


return 0;
}

互连.h

template<class T, const char filePath[], unsigned nPortPairs = 10>
SC_MODULE(Interconnect)
{
public:
...
};

最佳答案

您的 filePath 是一个本地自动变量,因此它的地址是一个运行时特性。该模板需要一个在编译时已知的地址。在 C++03 中还有一个关于链接的问题;我不太确定,但我认为链接问题已在 C++11 中修复。

一个简单的解决方法是让文件路径成为一个普通的构造函数参数。

关于c++ - 在 C++ 中将字符串作为模板参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26153763/

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