我正在实现一个类似于元组的类,称之为MyTuple
,我希望它有一些STL功能,即tuple_element
,tuple_size
和{{1} }。
get
中实施tuple_element
和tuple_size
专精吗?如果没有,那么我该如何实施呢?namespace std
函数,这是否意味着我必须在自己的命名空间中提供单独的get
函数,从而强制用户编写get
? 答案 0 :(得分:0)
回想一下,不存在功能模板的部分特化。所以你不能为你的班级部分专门化std::tuple_element
等。
通常,您可以在与类本身相同的命名空间中定义逻辑上属于类'接口的一部分的独立函数。然后,您可以依赖依赖于参数的查找来查找它们。 std :: get将通过相同的机制找到 - 您的库的用户实际上不会被迫写using std::get
。