【发布时间】:2018-06-15 18:31:57
【问题描述】:
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 world\n.");
return 0;
}
使用 C++14 (gcc-6.3) 代码无法编译,错误消息为
error: 'namespace' definition is not allowed here
namespace std
^~~~~~~~~
我为什么要这样做?
我无权访问允许我编写代码的函数之外的内容。我无法在全球范围内#include。
UPD:更改为 cstdlib 也有效问题不是标头保护排除(根据我),而是命名空间问题。因为 C++ 头文件有命名空间 std,而 c 头文件没有。我想问一下命名空间问题是否有一些调整?
【问题讨论】:
-
你到底为什么要这样做?
-
"我在允许我编码的函数之外没有访问权限。"请求访问权限。
-
如果是学校作业,不要那样做,反正会被拒
-
所以你做在线评委是一种爱好或学习,但你想作弊。如果你只是在没有向量的情况下解决它,你就已经完成了。
-
@madhur4127 为什么不直接搜索该函数的实现并在代码中添加类似的内容?这些规则已明确设置,因此您不能仅通过使用库函数来解决任务。是的,我知道,有人要求你重新发明轮子很糟糕,但如果是这样,你必须这样做,你就必须这样做。