関数テンプレートは暗黙的インスタンス化できる
で終わりなんだけど、少し悩んでやっぱ無理そうだったのでメモ 関数テンプレートで実装出来るのだが、使い勝手や最適化など考えて 関数オブジェクトにしたかったが 関数とクラスの テンプレートの違いで出来なかった
追記:やっぱできたぜ。メンバをテンプレートにすればOK
クラスのコンストラクタを可変長テンプレートにして ごにょごにょ - ムラサメ研究ブログ
テンプレート関数は暗黙的インスタンス化可能です!
template<T> void hoge(T t){}; hoge(12);
可能というかむしろ、暗黙的に使うよね。
もちろん あえて明示的にも書ける
template<T> void hoge(T t){}; hoge(12);
クラスは暗黙的インスタンス化できない
#include<iostream> template <class T> struct Stats{ void operator()(T t){} const; }; int main() { Stats<int>()( 12 ); // Stats()( 12 ); // 暗黙的インスタンス化できない }