Linuxのウィンドウからプログラムを移行するときに、C++の標準テンプレートライブラリを使用して問題が発生しました。私は、テンプレートをtypedefをしようとしていると私は、この行g ++を使用した標準テンプレートライブラリ
のtypedefのstd ::リスト<のstd ::ペア< int型、ダブル>> PairListに< 'トークン「の前に期待される初期化子」というエラーを取得しています。
これはmvC++を使用し、g ++を使用しないと、どうやって修正できるのか、
Linuxのウィンドウからプログラムを移行するときに、C++の標準テンプレートライブラリを使用して問題が発生しました。私は、テンプレートをtypedefをしようとしていると私は、この行g ++を使用した標準テンプレートライブラリ
のtypedefのstd ::リスト<のstd ::ペア< int型、ダブル>> PairListに< 'トークン「の前に期待される初期化子」というエラーを取得しています。
これはmvC++を使用し、g ++を使用しないと、どうやって修正できるのか、
これは#についてのものだと思います。
次のコードは本当に最低限の作品は、Linux
#include <utility>
#include <list>
typedef std::list< std::pair< int,double> > PairList;
PairList x;
#include <utility>
はpair
でしたか?
上のG ++と完全にここにコンパイル私はG ++のコードで問題はなかった、と一般的にそのSTLのサポートは見事であることがわかってきました。すべての#include
ディレクティブがありますか?ときには、それらはプラットフォーム(プラットフォームではない場合でも)によって異なります。
標準インクルードファイルについて覚えておかなければならないことは、それらが許可されていてもお互いを呼び出す必要がないことです。 (あなたが混乱してはならない名前空間stdを使用するので、名前空間を潜在的に汚染しているようではありません。)
MSVC++には、これはg ++ヘッダーのケースではありません。したがって、プログラムはMSVC++でコンパイルされ、g ++ではコンパイルされず、ソースに必須のヘッダーがありません。
実際に必要なヘッダーがすべて含まれていることを確認してください。
なぜMSVC++で動作しているのかについては、あらかじめコンパイルされたヘッダーの問題が考えられます。 – Jherico
ヘッダーを追加するとうまくいきました。皆さんありがとう – DHamrick