私は2つのファイルを持っています - 1つは署名のない引数をテンプレートに渡し、もう1つはテンプレートの宣言と定義を含んでいます。署名されていない引数をテンプレートに渡す方法は?
/*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;
....
};
}}
行がエラーをスローし、const値のみを受け入れています。 nの値をThreadCountに渡す方法はありますか?
EDIT:コンパイル時にスレッドのサイズを変更可能にします。
理由だけではなく、コンストラクタの引数を使わないのでしょうか? –
@Jim上記のサンプルの文脈で小さな例を提供できればうれしいです。 – Scissor
@JimV 'std :: array'は、コンパイル時定数サイジングを必要とします。 – user4581301