2014-10-02 164 views
-5

我有以下代碼,我在標準模板庫中使用C++ 11元組。爲什麼會出現這個錯誤?

#include <tuple> 
#include <cstdio> 
#include <vector> 
#include <iostream> 
#include <algorithm> 
#include <functional> 
#include <string> 
using namespace std ; 
vector<tuple<string,string,string,string,string,string> > lst ; 
    int main() 
    { 
     string t1,t2,t3,t4,t5,t6 ; 
     cin>>t1>>t2>>t3>>t4>>t5>>t6 ; 
     char c ; 
     tuple<string,string,string,string,string,string> tup = make_tuple(t1,t2,t3,t4,t5,t6); 
     while(!feof(stdin)) 
     { 
      list.push_back(tup) ; 
      cin>>t1 ; 
      cin>>t2 ; 
      cin>>t3 ; 
      cin>>t4 ; 
      cin>>t5 ; 
      cin>>t6 ; 
      tup = make_tuple(t1,t2,t3,t4,t5,t6) ; 
      getchar_unlocked() ; 
      getchar_unlocked() ; 
     } 
     sort(list.begin(), list.end(), mySort) ; 
     print() ; 
    } 

它顯示錯誤

Expected primary expression before '>' token. on the line `tuple<string,string,string,string,string,string> tup = make_tuple(t1,t2,t3,t4,t5,t6);` 

誰能告訴我爲什麼來這個編譯器錯誤。

+0

你包括''編譯頭? – seh 2014-10-02 15:40:37

+1

這不是完整的代碼,或者您發佈了其他內容。 – 2014-10-02 15:41:14

+0

是的,我已經包括了所有必要的頭文件,包括 2014-10-02 15:41:15

回答

1

正如你包括所有頁眉和定義的所有功能,較高的機會,你錯過啓用C++ 11標誌

你需要使用-std=c++11標誌

+1

錯誤在哪裏顯示? – interjay 2014-10-02 15:49:04

+1

@interjay對不起,當我看到'...'之前的主要表達式''我認爲它可能是'-std = C++ 11',因爲嵌套模板中的'>>'用法。同意這是一個盲目的猜測 – P0W 2014-10-02 15:58:52

+0

奇怪的是,我會假設缺乏C++ 11會在早些時候導致錯誤,例如在'#include '中。但OP似乎證實了這一點。 – interjay 2014-10-02 16:03:13

相關問題