gpt4 book ai didi

C++ 程序在 VC++ 2010 中编译,但在 Visual C++ 6.0 中不编译

转载 作者:太空宇宙 更新时间:2023-11-04 15:06:52 24 4
gpt4 key购买 nike

我不会粘贴整个程序,而只会粘贴包含的文件和错误,因为我非常确定,错误就在那里!

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>

好吧,只有一个区别,我添加了#include <String>在 Visual C++ 2006 中,这个特定文件减少了读作

error C2678: binary '!=' : no operator defined which takes a left-hand operand of type () 'class std::basic_string,class std::allocator >' (or there is no acceptable conversion)

我在 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 中出了什么问题??

最佳答案

假设 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();
}

涉及 vector 的错误是由两个右尖括号引起的,旧的编译器会将其解释为单个 >>> 标记。在它们之间添加一个空格:

vector<vector<float> >
^

不太清楚您使用的是哪个编译器,因为没有 Visual C++ 2006。如果您实际上是指 Visual C++ 6.0(从 1998 年开始),那么您可能注定要失败。从那以后有两次主要的语言修订,使得编写该编译器和现代编译器都支持的代码变得非常困难。如果您指的是 2005 或 2008,那么请注意避免使用 C++11 功能。

关于C++ 程序在 VC++ 2010 中编译,但在 Visual C++ 6.0 中不编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12158370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com