Variadic Template Parameters のパラメータの数を制限する
Variadic Template Parameterで対応できない例として、最低N引数以上の可変個引数関数を宣言する一般的な方法、というのを思いだしたんだけど、
template<typename ...Params> decltype( boost::enable_if< boost::mpl::bool_<(sizeof...(Params) > 2)>, int>::type()) f(Params... && params);
とかすれば、Params にパックされている引数の数が3以上のときのみ適用可能な関数テンプレートが書けるやんと。これじゃなかったか、はたまた以前このケースに思いあたったとき、この方法を思いつかなかったのか…
というか、まぁdecltypeでSFINAE発動すればなんでもできるし、SFINAE先生こわいですね。強い。SFINAEとboolを自由に往来できるとか素敵です。メタプログラミングのシルクロードやー。彦摩呂とかきょうびはやらんし。