Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内存标准头和包含文件之间的差异 我是C++的新手,我调试一个问题,在这里有一个分配.h 文件,它包含在Meal.CPP文件中。现在,allocate.h文件的第一行是这样的:\include。当我试图编译main.cpp时,会收到一条错误消息 Microsoft Visual Studio 11.0\ VC\ include\ typeinfo (153) : error C2504 exception base class undefined_C++_Exception_Include - Fatal编程技术网

内存标准头和包含文件之间的差异 我是C++的新手,我调试一个问题,在这里有一个分配.h 文件,它包含在Meal.CPP文件中。现在,allocate.h文件的第一行是这样的:\include。当我试图编译main.cpp时,会收到一条错误消息 Microsoft Visual Studio 11.0\ VC\ include\ typeinfo (153) : error C2504 exception base class undefined

内存标准头和包含文件之间的差异 我是C++的新手,我调试一个问题,在这里有一个分配.h 文件,它包含在Meal.CPP文件中。现在,allocate.h文件的第一行是这样的:\include。当我试图编译main.cpp时,会收到一条错误消息 Microsoft Visual Studio 11.0\ VC\ include\ typeinfo (153) : error C2504 exception base class undefined,c++,exception,include,C++,Exception,Include,但是,当我将第一行更改为:#include时,main.cpp可以很好地编译。就在那时,我开始在网上搜索这两种类型的包含文件之间的区别,但我还没有找到任何详细的解释。如果有人能解释包含.h文件和内存标准头之间的区别,那将非常有用。 是因为#include更安全吗?还是因为它只是C++中包含文件的方式。< /P> 我还使用cmake将我的项目包含在llvm生成的解决方案中。生成我的.vcxproj文件时,它包括\u有\u异常=0中的标记。如果我使用前面的声明#include和remove(包含),

但是,当我将第一行更改为:
#include
时,main.cpp可以很好地编译。就在那时,我开始在网上搜索这两种类型的包含文件之间的区别,但我还没有找到任何详细的解释。如果有人能解释包含.h文件和内存标准头之间的区别,那将非常有用。
是因为
#include
更安全吗?还是因为它只是C++中包含文件的方式。< /P> 我还使用cmake将我的项目包含在llvm生成的解决方案中。生成我的
.vcxproj
文件时,它包括
\u有\u异常=0中的
标记。如果我使用前面的声明
#include
和remove
(包含
),则有(u异常=0)
标记中选择code>,然后项目可以正常编译。这一切是如何联系在一起的?有人能帮我把这些点连起来吗?

不是不同的样式,它们是两个完全不同的标题


<代码> <代码>看起来是MS C库使用的内部报头,不应该包含它,使用标准C++头<代码> <代码> .< /p> 在写这个答案后,我发现我认为是相关的。 这与线程安全无关。标准C++标题如下:参考文献,7.61.2首标:

表13 -C++库头< /P>

<algorithm> <fstream> <list> <regex> <typeindex>
<array> <functional> <locale> <set> <typeinfo>
<atomic> <future> <map> <sstream> <type_traits>
<bitset> <initializer_list> <memory> <stack> <unordered_map>
<chrono> <iomanip> <mutex> <stdexcept> <unordered_set>
<codecvt> <ios> <new> <streambuf> <utility>
<complex> <iosfwd> <numeric> <string> <valarray>
<condition_variable> <iostream> <ostream> <strstream> <vector>
<deque> <istream> <queue> <system_error>
<exception> <iterator> <random> <thread>
<forward_list> <limits> <ratio> <tuple>

正如其他人所说,记忆h不是其中之一

完整性,这里是C++库的C++标准头。

C语言库设备

表14~C++标题
<cassert> <cfloat> <cmath> <cstddef> <ctgmath>
<ccomplex> <cinttypes> <csetjmp> <cstdint> <ctime>
<cctype> <ciso646> <csignal> <cstdio> <cuchar>
<cerrno> <climits> <cstdarg> <cstdlib> <cwchar>
<cfenv> <clocale> <cstdbool> <cstring> <cwctype>


memory.h
不是标准的库头。@克里斯:那么visual studio应该提示我说找不到头文件。它也不这样做。header.h出现在
C:\ProgramFiles(x86)\Microsoft Visual Studio 12.0\VC\include
中,仅仅因为它不是标准库,并不意味着VS不能有额外的库。无论如何,不是标准库标题意味着它的用途与
不同。仍然有
等是完全标准的,但它们也不在其中。