没学过,但是下面的代码我试了能跑。
是不是你的VS项目设置没有改C++标准为C++20?
[C++] 纯文本查看 复制代码 #include <iostream>
template<typename... Values> class tuple;
template<> class tuple<> {};
template<typename Head, typename... Tail>
class tuple<Head, Tail...> : private tuple<Tail...>
{
typedef tuple<Tail...> inherited;
public:
tuple() {}
tuple(Head v, Tail... vtail) : hd(v), inherited(vtail...) {}
Head head() { return hd; }
inherited& tail() { return *this; }
private:
Head hd;
};
int main()
{
tuple<int, float> tif(1, 1.5);
std::cout << tif.head() << '\n';
std::cout << tif.tail().head() << '\n';
} |