假设我目前有一个这样的模板函数:
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()
或类似的效果而不需要额外的开销?