2014-10-02 2 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

+1

Это либо не полный код, либо вы отправили что-то еще. –

+0

Да, я включил все необходимые заголовки, в том числе

ответ

1

Как вы включили все заголовки и все функции, определенные, высокая вероятность того, что вы пропустили, чтобы включить C++ 11 пометки

Вам необходимо скомпилировать с помощью -std=c++11 флага

+1

Где ошибка указывает на это? – interjay

+1

@interjay извините, когда я вижу что-то '... первичное выражение перед '>'' Предполагаю, что это будет '-std = C++ 11', из-за'>> 'использования в вложенных шаблонах. Согласился, это было слепое предположение – P0W

+0

Странно, я бы предположил, что недостаток C++ 11 приведет к ошибке раньше, например. в '#include '. Но ОП, похоже, подтверждает, что это помогло. – interjay

Смежные вопросы