2012-04-09 16 views
1

私はVisual Studio 2010を使用してC++コードを処理しています。プロジェクトとその内容は他の誰かによって書かれ、共有ドライブにコピーされます。作成者が自分のコンピュータ上に作成すると、正常に動作します。それは、常にエラーのように思えるあるコンピュータではあいまいなシンボルエラーが発生する可能性があります。

std::pair<int, std::pair<int, Point>> b) -> bool { return (a.second.second < b.second.second); }); 

:私は解決策を構築しようとした際、私はこれらのエラー

error C2872: '<lambda0>' : ambiguous symbol could be 
'[File].cpp(66) : anonymous-namespace'::<lambda0>' or 
'[Different file].h(549) : `anonymous-namespace'::<lambda0>'. 

の全体の束が、ここでエラーにあると言われるラインの例です取得します'});'で終わる行があります。完全なコードはここに表示するにはかなり巨大で、他のコンピュータでも動作しますので、おそらくそれは自分の設定や何かの問題です。誰かが彼らが何であるかを推測することはできますか?あなたはこのかどうかが、そのコンパイラエラーのためのMSDNのページによると見てきた場合はわからない

+0

ANSIコードページを確認してください。 – Joshua

+1

コンパイラはC++ 11をサポートしていますか? – juanchopanza

+2

VSの同じパッチレベルですか? – 0xC0000022L

答えて

2

:私は同じ問題の小枝あいまいなシンボルに問題があった

C2872 can occur if a header file includes a using Directive (C++), and a subsequent header file is #include'd and contains a type that is also in the namespace specified in the using directive. Specify a using directive only after all your header files are specified with #include.

MSDN Page

0

。私にとっては、同じ機能を持っているが明らかに異なる定義を持つ2つの名前空間を使用していたことがわかりました。私は名前空間の1つの使用をやめなければならず、これが問題を解決します。

using namespace cv; 
using namespace boost::accumulator; 
accumulator_set<double, stats<tag::mean, tag::variance> > acc; 
double meanval = mean (acc); 

この意志コンパイルエラーによる:例として

error C2872: 'mean' : ambiguous symbol両方がCVを名前空間と高めるためです::アキュムレータは、同じ機能を持っている私は、これは

を役に立てば幸い

「を意味します」

関連する問題