【发布时间】:2019-03-16 12:16:57
【问题描述】:
我已经定义了:
template<class Head,class ...Tail>
struct elem{
std::tuple<Head,Tail...> dm;
};
我有用于类 elem 的函数 head()、tail() 和其他函数,但它们创建副本,它们返回元组头部或元组尾部的副本,但我需要对尾部的引用这-> dm。
头部很简单,std::get<0>(this->dm)给我参考。
尾巴有可能吗?尾部是指第一个元素之后的所有元素。
【问题讨论】:
-
“tail”是指
tuple的最后一个元素吗? -
请定义“对尾部的引用”。
-
不,我的意思是如果列表是 {0,1,2,3},那么尾部是 {1,2,3}。想法是 get(dm),get(dm),...,get
(dm),但是将总数作为元组的引用。 -
C++ 不是 Prolog:“尾巴”不是
std::tuple。或者,如果是,则在特定于编译器的实现细节中。 -
我写了 get(dm),但是如果我考虑元组 dm 的其余部分(没有 head==get(dm)),我将此提醒命名为尾巴,我需要一个尾巴的引用才能写在这个尾巴里。