您应该如何为自定义类实现STL功能?

时间:2013-07-22 01:29:21

标签: c++ c++11 stl overloading

我正在实现一个类似于元组的类,称之为MyTuple,我希望它有一些STL功能,即tuple_elementtuple_size和{{1} }。

  1. 我应该在get中实施tuple_elementtuple_size专精吗?如果没有,那么我该如何实施呢?
  2. 由于我不允许重载STL namespace std函数,这是否意味着我必须在自己的命名空间中提供单独的get函数,从而强制用户编写get

1 个答案:

答案 0 :(得分:0)

回想一下,不存在功能模板的部分特化。所以你不能为你的班级部分专门化std::tuple_element等。

通常,您可以在与类本身相同的命名空间中定义逻辑上属于类'接口的一部分的独立函数。然后,您可以依赖依赖于参数的查找来查找它们。 std :: get将通过相同的机制找到 - 您的库的用户实际上不会被迫写using std::get