不确定这是否是正确的提问地点,但这里是
英特尔网站上的一个页面指出:
Windows 版英特尔 C++ 编译器使用 Microsoft Visual C++ 头文件、库和链接器。Microsoft 控制定义命名空间的头文件。请联系 Microsoft 的技术支持,参考 Microsoft 在此问题上遵守 C++ 标准的情况...链接
Intel(或其他)是否有指南将库从由Visual Studio管理的库更改为由gcc提供的库(也在我的 Windows 计算机上)。我想这样做的原因是为了利用 Visual Studio 版本中不支持的一些新的 C++11 功能(通常是这种情况)
如果这是不可能的,因为我目前对上述知识的了解不正确,有人可以向我解释为什么不可以。
谢谢。
没有动态定义的内置类型,在程序持续期间始终保持在同一块内存中吗?
如果这是我应该了解的,我该如何去检查它?
即
int j = 0;
double k = 2.2;
double* p = &k;
Run Code Online (Sandbox Code Playgroud)
如果C/C++程序是高度内存密集型的,那么系统架构或编译器是否会移动所有这些对象?
注意:我不是在谈论诸如此类的容器std::vectors<T>.在某些情况下,这些显然可以重新分配,但这又是动态的.
附带问题:
以下情况显然会引起一些人的注意.举个例子,这个指针在程序的持续时间内是否总是有效的?
由于我的无知,这个问题已经过时了!
struct null_deleter
{
void operator() (void const *) const {};
};
int main()
{
// define object
double b=0;
// define shared pointer
std::shared_ptr<double> ptr_store;
ptr_store.reset(&b,null_deleter()); // this works and behaves how you would expect
}
Run Code Online (Sandbox Code Playgroud)