我有兩個文件 - 一個是我將一個無符號參數傳遞給模板,另一個包含模板聲明和定義。如何將無符號參數傳遞給模板?
/*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