在函数 C++14 中包含 STL 头文件
include STL header file inside a function C++14
tl;dr:我可以以某种方式使这段代码在 C++14 (GCC 6.3( 中工作吗?
int main(){
#include<vector>
std::vector<int> v{1,2,3};
return 0;
}
但是下面的代码工作得很好!
#include <iostream>
using namespace std;
int main() {
#include<cstdio>
using namespace __gnu_cxx;
printf("Hello worldn.");
return 0;
}
使用 C++14 (gcc-6.3( 代码无法编译,错误消息为
error: 'namespace' definition is not allowed here
namespace std
^~~~~~~~~
我为什么要这样做?
在允许我编码的函数之外,我无法访问。我无法在全球地区 #include。
UPD:更改为 cstdlib 也可以解决问题,不是标头保护排除(据我说(,而是命名空间问题。因为C++头文件具有命名空间 std,而 c 头文件没有。我想问一下命名空间问题是否有一些调整?
我可以以某种方式使这段代码工作吗
不。标准标头(以及一般的大多数库标头(必须包含在全局命名空间范围内。
但是下面的代码工作得很好!
但它不能保证有效。它只是碰巧起作用,可能是因为<iostream>
已经包含了<cstdio>
,所以你自己的包含被标题护卫删除了。
相关文章:
- STL 的头文件
- 在函数 C++14 中包含 STL 头文件
- 如何使用 STL C++读取文件和保存连字符
- 如何使用 STL 中的容器读取文件
- 修复可能损坏的 .stl 文件上的法线
- 将STL文件添加到QT小部件
- 如何为C++ STL 模板文件生成标记文件,例如未来
- 使用.txt文件填充 STL 列表不起作用
- C 库从3D文件格式(例如STL)获得常规网格
- 将多个 stl 文件合并为一个
- 导入 .C++ 中的 STL 文件?
- 如何将 STL 映射保存到文件C++
- 对 stl 的头文件
- 显示一个错误(在Visual Studio中),当某人试图在当前.cpp或.h文件中使用STL时
- 包括(STL)标题中的标题文件
- 如何在 c++ STL 文件读取期间可移植地捕获和处理 UTF "EN DASH"缺点?
- 验证STL文件是否为ASCII或二进制文件
- STL文件的哪种格式读取速度更快:ascii还是二进制
- 有效地从STL文件生成拓扑
- Point Cloud Library-CloudViewer showCloud()-传递常量指针-可视化STL文件