应该如何为自定义类实现STL功能
How should you implement STL features for custom classes?
我正在实现一个类似元组的类,称之为MyTuple
,我希望它具有一些STL特性,即tuple_element
、tuple_size
和get
。
- 我应该在
namespace std
中实现tuple_element
和tuple_size
专业化吗?如果没有,我应该如何实施它们 - 由于我不允许重载STL
get
函数,这是否意味着我必须在自己的命名空间中提供一个单独的get
函数,从而迫使用户编写using std::get;
回想一下,函数模板的部分专业化是不存在的。所以你不能为你的课专门化std::tuple_element
等。
通常,您会在与类本身相同的命名空间中定义独立函数,这些函数在逻辑上是类接口的一部分。然后,您可以依靠依赖于参数的查找来查找它们。std::get也可以通过同样的机制找到——实际上,库的用户不会被迫编写using std::get
。
相关文章:
- 为什么使用 NDK 不能存在不同的 stl 实现?
- glibcxx STL 在实现 std::valarray::sum() 时是否不正确?
- 默认赋值运算符如何在实际 STL 中实现
- hashtable :如何理解这种基于STL中List的hashtable实现
- 如何知道用于实现标准代码段的确切数据结构和算法,例如在C++STL中?
- 使用 Boost HOF 实现 STL 漂亮打印
- 如何在C++中重新实现包含指针的 STL 容器的类的迭代器
- 在C++中实现无STL和无类的最小堆
- 我可以期望某些 STL 函数实现是可自动矢量化的吗?
- 使用 C++ STL 的数组实现
- 我应该如何在恒定长度的 STL 样式数据结构中实现max_size?
- C STL中如何实现Deque
- 错误试图实现STL迭代器
- 关于 c++ stl 谓词的实现
- 为什么不是条件 *First1 == * First2 ??(C++ STL 包括函数实现)
- 使用值类在C 中实现STL MAP
- 如何实现STL容器中对象的快速释放
- 应该如何为自定义类实现STL功能
- 如何实现 STL 风格的迭代器并避免常见的陷阱
- 说出一个实现STL兼容序列容器的好指南)