0

プログラム全体を貼り付けるのではなく、含まれているファイルとエラーだけを貼り付けます。エラーはそこにあると確信しています。

VS 2010 に含まれるファイル

#include <cstdlib>
#include <windows.h>
#include "iostream"
#include "conio.h"
#include "vector"
#include "math.h"
#include <string.h>
#include <bitset>

Visual C++ 6.0 に含まれるファイル

#include <cstdlib>
#include <windows.h>
#include "iostream"
#include "conio.h"
#include "vector"
#include "math.h"
#include <string.h>
#include <bitset>
#include <String>

違いは 1 つだけです。私#include <String>は Visual C++ 2006 で追加しました。この特定のファイルは、次のエラーを減らしました。

エラー C2678: バイナリ '!=' : 型 () 'class std::basic_string,class std::allocator >' の左側のオペランドを取る演算子が定義されていません (または、受け入れ可能な変換がありません)

VS2006でまだ直面している他の主要なエラーは次のとおりです

ライン :str.append(to_string((long double)(value)));

エラー:error C2065: 'to_string' : undeclared identifier

ライン:vector <vector <float>> distOfSectionPoint, momentAtSectionPoint, preFinalMoment, finalMoments, momentAtSectionPtOnPtLoadProfile ;

エラー:error C2208: 'class std::vector' : no members defined using this type

Visual C++ 2006 で何が問題なのか説明できる人はいますか??

4

2 に答える 2

4
エラーC2065:'to_string':宣言されていない識別子

std::to_string()VS2010でサポートされているC++11機能です。以前のバージョンのMicrosoftコンパイラはそれをサポートしません。別の方法はboost::lexical_castです。


エラーC2208:'class std :: vector':このタイプを使用して定義されたメンバーはありません

C ++ 11およびVS2010では使用が許可されていますが>>、C++11より前では使用できません。次のように変更する必要があります:

vector <vector <float> > distOfSectionPoint,
                    //^ space here
于 2012-08-28T11:41:33.093 に答える
4

が であると仮定するto_stringstd::to_string、それは古いコンパイラでは使用できない C++11 関数です。次のように、ほぼ同等のものを組み合わせることができます

template <typename T>
std::string nonstd::to_string(T const & t) {
    std::ostringstream s;
    s << t;
    // For bonus points, add some error checking here
    return s.str();
}

関連するエラーは、古いコンパイラが 1 つのトークンvectorとして解釈する 2 つの閉じ山かっこが原因で発生します。>>それらの間にスペースを追加します。

vector<vector<float> >
                    ^

Visual C++ 2006 がなかったため、どのコンパイラを使用しているかは明確ではありません。実際に Visual C++ 6.0 (1998 年以降) を意味する場合は、おそらく運命にあります。それ以来、2 つの主要な言語改訂があり、そのコンパイラと最新のコンパイラの両方でサポートされているコードを記述することは非常に困難になっています。2005 年または 2008 年を意味する場合は、C++11 機能を避けるように注意してください。

于 2012-08-28T11:43:59.827 に答える