我有两个文件 - 一个是我将一个无符号参数传递给模板,另一个包含模板声明和定义。如何将无符号参数传递给模板?
/*File1.cc */
#include "File2.h"
int main()
{
unsigned n = 10;
ThreadPool<n> pool; //Error
.....
}
/* File_2.h */
....
namespace nbsdx {
namespace concurrent {
template <unsigned ThreadCount>
class ThreadPool {
std::array<std::thread, ThreadCount> threads;
....
};
}}
ThreadPool<n> pool;
行引发错误,只接受const值。有什么办法可以将n的值传递给ThreadCount?
编辑:我希望线程的大小在编译时间后可以改变。
为什么不直接使用一个构造函数的参数? –
@Jim如果你可以在上面的示例中提供一个小例子,那将会很好。 – Scissor
@JimV'std :: array'需要编译时间常量大小。 – user4581301