zishen 发表于 2024-2-8 18:35

c++ tuple

本帖最后由 zishen 于 2024-2-8 19:46 编辑

今天听侯捷老师的c++课

照着敲了一遍代码

报了一堆错误

有大佬知道是因为什么吗?

magiclyan 发表于 2024-2-8 19:14

lz这完全是照葫芦画瓢却没注意此瓢非彼瓢,C++等高级语言对于大小写、符号等都是敏感的
不同的C++解释器版本支持的语法会有所不同,真想学C++的话建议去系统学习而不是简单听一两节课

DEATHTOUCH 发表于 2024-2-8 19:15

没学过,但是下面的代码我试了能跑。
是不是你的VS项目设置没有改C++标准为C++20?

#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';
}

暗影夺魄 发表于 2024-2-8 19:20

无语,你还是系统的去学下吧,发现你用的符号都不规范

zishen 发表于 2024-2-8 19:46

magiclyan 发表于 2024-2-8 19:14
lz这完全是照葫芦画瓢却没注意此瓢非彼瓢,C++等高级语言对于大小写、符号等都是敏感的
不同的C++解释器版 ...

怎么系统学习呢?

zishen 发表于 2024-2-8 19:48

DEATHTOUCH 发表于 2024-2-8 19:15
没学过,但是下面的代码我试了能跑。
是不是你的VS项目设置没有改C++标准为C++20?



设置了,还是报错{:1_937:}

zishen 发表于 2024-2-8 19:49

暗影夺魄 发表于 2024-2-8 19:20
无语,你还是系统的去学下吧,发现你用的符号都不规范

按视频敲的{:1_925:},我发出来是寻求帮助的,不是让你在这挑刺的

DEATHTOUCH 发表于 2024-2-8 19:54

本帖最后由 DEATHTOUCH 于 2024-2-8 19:59 编辑

zishen 发表于 2024-2-8 19:48
设置了,还是报错
那我贴的那个代码能跑吗?

我自己测试了 VS 2022 可以,clang++ 17.0.6可以,g++ 13.2.0可以

zishen 发表于 2024-2-8 20:11

DEATHTOUCH 发表于 2024-2-8 19:54
那我贴的那个代码能跑吗?

我自己测试了 VS 2022 可以,clang++ 17.0.6可以,g++ 13.2.0可以

不行:'(weeqw,我用的也是vs2022

DEATHTOUCH 发表于 2024-2-8 20:15

zishen 发表于 2024-2-8 20:11
不行,我用的也是vs2022

按理说不应该这样的,要不你换一个MinGW或者LLVM的环境试试看
页: [1] 2
查看完整版本: c++ tuple