为什么g ++无法编译元组?

时间:2016-12-11 20:44:07

标签: c++

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

2 个答案:

答案 0 :(得分:4)

尝试#include <string>

可能(取决于您的版本og gcc)您还需要在命令行上使用-std=c++11

答案 1 :(得分:1)

元组很好;你试图使它成为 的元组不是。

您没有#include <string>

因此,“string”这个词对你的编译器没有任何意义,它不知道你想要它做什么。它甚至不能说你认为它是一个类型,所以它不能用“tuple”这个词来表示你的意思是“std :: tuple”。等等......等等。