C++ 11では、関数テンプレートのシーケンスを配列初期化子に明示的にインスタンス化するテンプレートを作成できますか?そのまま上記のコードが動作する 明示的な関数テンプレートインスタンスのシーケンスを作成する
// The template I want to instantiate:
template<size_t N> void callbackTemplate(const int dummy) {
// Do something which needs to know 'N'.
}
// The variable I want to assign 'callbackTemplate' instantiations to:
void (*callback)(const int dummy); // This cannot be std::function, because it
// is not defined by me! It is already there and
// must be used as it is.
// This is the set of instantiations I want to prepare:
std::array<decltype(callback), 3> callbackTemplates = {
callbackTemplate<0>, callbackTemplate<1>, callbackTemplate<2>
};
のように私は(私はそれは長い話だから、ということが必要な理由は聞かないでください)達成したいことになります。私が変更したいのは、配列
callbackTemplates
の初期化です。私は、初期化子をコンパイル時定数に依存するテンプレートにして、インスタンス化0..Nを作成します。
問題は何とかC++ static const array initialization in template classに関連していますが、他のテンプレートのインスタンス化を「テンプレート化」することはできませんでした。
は[これ](http://melpon.org/wandbox/permlink/6n2WUv4tG2cW8Udp)は何ですか? – krzaq
[this](http://stackoverflow.com/a/6744787/6387170)help – UKMonkey
これは非常識です!あなたはそれをコード化しましたか? – Christoph