2016-05-10 7 views
0

g ++での機能の使用に問題があります。私は!g++ -o test test.cpp -std=c++11でコンパイルしてもエラーはなく、プログラムもうまく動作します。私は、コンパイルする前にSyntasticを使用してエラーをチェックし、次のような出力が得られます。g ++には関数ライブラリが含まれていますか?

これは私のプログラムTEST.CPPです:

1 #include <functional> 
    2 
    3 using namespace std; 
    4 
    5 int f(int x){ 
    6   return x; 
    7 } 
    8   
    9 void f2(function<int(int)> f){ 
    10 
    11 } 
    12 
    13 int main(){ 
    14   return 0; 
    15 } 

エラーは次のとおりです。

1 test.cpp|9 col 9 error| variable or field ‘f2’ declared void           
    2 test.cpp|9 col 9 error| ‘function’ was not declared in this scope 
    3 test.cpp|9 col 18 error| expected primary-expression before ‘int’ 

このエラーは何を意味し、私はそれをどのように修正するのですか?

答えて

0

問題は、機能性がC++ 11でしか使用できないため、SyntaxはC++ 11コードをチェックしていないということでした。コンパイルが正常に行われ、出力ファイルが正しい結果を表示したのはそのためです。

は、私は、問題の根本を発見した後、この問題の答えを見つけた:

how to add c++11 support to syntastic vim plugin?

ので、私はちょうど私のvimrcに

let g:syntastic_cpp_compiler_options = ' -std=c++11 -stdlib=libc++' 

を追加する必要がありました

関連する問題