3

我正在实现一个类似元组的类,将其命名为MyTuple,并且我希望它具有一些 STL 功能,即tuple_elementtuple_sizeget

  1. 我应该实施tuple_elementtuple_size专业化namespace std吗?如果没有,那么我应该如何实施它们?
  2. 由于我不允许重载 STLget函数,这是否意味着我必须get在自己的命名空间中提供单独的函数,从而迫使用户编写using std::get;
4

1 回答 1

0

回想一下,不存在函数模板的部分特化之类的东西。所以你不能std::tuple_element为你的班级部分专业化等。

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

于 2013-07-22T03:01:14.957 回答