次のような非静的メンバーのスレッドローカル変数をシミュレートしたい:
template< typename T, unsigned int tNumThread >
class ThreadLocal
{
private:
protected:
T mData[tNumThread];
unsigned int _getThreadIndex()
{
return ...; // i have a threadpool and each thread has an index from 0 to n
}
public:
ThreadLocal() {};
~ThreadLocal() {};
T& operator ->()
{
return mData[_getThreadIndex()];
}
...
};
mData
しかし問題は、実行時にスレッドの数が決定され、ヒープから割り当てる必要があることです。
上記のように、ヒープからの割り当てを使用せずに通常の配列を使用する方法はありますか?