現在、次のようなテンプレート関数があるとします。
template <class T, class K>
void* get_subobject(K key)
{
T& obj = function_returning_T_ref<T>();
// do various other things...
return &obj[key];
}
そして、ユーザーが独自のコードをマップobj
とkey
戻り値に適用できるように、添字操作を構成可能にしたいと思います。このようなもの:
template <class T, class K, class Op = subscript<T, K>>
void* get_subobject(K key)
{
T& obj = function_returning_T_ref<T>();
// do various other things...
return &Op{}(obj, key);
}
私の質問は、上記のデフォルトのテンプレート パラメータについて、デフォルトで を呼び出すようにここで使用できるsubscript<T,K>
標準のテンプレート (の行に沿って) がありますか? に適切なものが見当たりません。std::less<T>
Op
operator[]
<functional>
このための標準テンプレートがない場合、独自のテンプレートを作成するのが最善std::bind()
ですか、それとも追加のオーバーヘッドなしで同じ効果を使用または類似する方法はありますか?