【发布时间】:2013-04-11 01:24:27
【问题描述】:
如何实现一个按类型而不是按索引访问元素的元组类?类似于此界面的内容...
template<typename... T>
class Tuple
{
public:
Tuple(T... elements);
template<typename U>
U &get(); // U is one of the types in T...
};
【问题讨论】:
-
同一种类型被使用两次怎么办?
-
这个类将专门用于每种类型只使用一个元素的用例。
-
我以前做过——也许是 7 年前——当时在 boost 邮件列表中提到过它,但没有人看到这个实用程序,我也懒得详细解释。我使用了 Alexandrescu 的 Loki 库,所以有一种方法可以做到。如果您尝试遇到麻烦,那么您将有一个值得回答的正确问题;-P。不错的是,您可以提供按索引号、访问者模式等返回类型的工具。并且请注意 cppguy 的问题 - 您可以轻松地将值包装成不同的类型。
标签: c++ templates generics tuples