d
我的程序遇到了困难,所以我写了一个更简单的程序,即使这样也行不通。我多次查看文档后,我不明白为什么会出现问题。它也可以在XCode上编译好,但出于某种原因可以分解g ++。
以下是完整的错误消息:
test.cpp:6:3:错误:使用未声明的标识符'tuple'
tuple x;
^
test.cpp:6:9:错误:意外类型名称'string':预期 表达
tuple x;
#include <iostream> #include <tuple> #include <string> using namespace std; int main(){ tuple<string, string, string> x; x = make_tuple("hi", "a", "b"); cout << get<0>(x) << endl << endl; }
test.cpp:7:3:错误:使用未声明的标识符'x'
x = make_tuple(“hi”,“a”,“b”);
^
test.cpp:7:7:错误:使用未声明的标识符'make_tuple'
x = make_tuple(“hi”,“a”,“b”);
^
test.cpp:8:11:错误:无法引用重载函数 解决;你的意思是打电话吗? cout&lt;&lt;得到&lt; 0&gt; x&lt;&lt; endl&lt;&lt; ENDL;
我使用的命令是g ++ test.cpp
答案 0 :(得分:4)
尝试#include <string>
。
可能(取决于您的版本og gcc)您还需要在命令行上使用-std=c++11
。
答案 1 :(得分:1)
元组很好;你试图使它成为 的元组不是。
您没有#include <string>
!
因此,“string”这个词对你的编译器没有任何意义,它不知道你想要它做什么。它甚至不能说你认为它是一个类型,所以它不能用“tuple”这个词来表示你的意思是“std :: tuple”。等等......等等。