如何强制visual studio遵循ISO c++
How to force visual studio follow ISO C++
我很高兴在Visual Studio 2013中编写c++项目。我没有显式地使用任何非标准扩展,尽管当我在Ubuntu中迁移到GCC 4.8时,我收到了许多错误,因为我隐式地使用了非标准扩展。例如:
#include <vector>
template<class T>
class A
{
public:
using MyVector = std::vector<T>;
};
template<class T>
class B : public A<T>
{
MyVector vec;
};
此代码(这里是链接)在VS2013的默认设置下是合法的,尽管在GCC: error: 'MyVector' has not been defined
中,并且它与ISO一致。
所以我的问题是:如果我100%确定,我的代码应该符合ISO标准,我可以强制visual studio严格遵循ISO c++标准吗?
微软最近似乎在这方面做了一些工作:
https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/相关文章:
- 如何使用 C++将 ISO-2022-KR 编码转换为 UTF-8 编码?
- ISO C++禁止声明没有类型的"setInputNombre"
- ISO C++禁止指针和整数 [-fpermissive] [c++] 之间的比较
- 为什么我会收到此警告:ISO c++ 禁止可变长度数组"v"[-Wvla]
- ISO 中禁止可变长度数组 C++崇高文本中的错误 3.
- 是否存在经过认证(ISO 26262或类似)C++标准库?
- 张量流错误 此文件需要编译器和库支持 ISO C++ 2011 标准
- 错误:ISO C++禁止可变长度数组"subVec"[-Werror=vla]
- Clang-CL 警告 strnicmp 已弃用,请使用 ISO C 并C++符合标准的名称_strnicmp
- Qt 错误 iso c++ 禁止指针和整数之间的比较 -permissive
- DEV C++ 第 69 行 [错误] ISO "for" 范围更改了"i"的名称查找 [-允许]
- 错误:ISO C++禁止在指针和整数 [-fallowive] 之间进行比较
- 警告:ISO C++禁止可变长度数组
- 包括C++标题,"..."与<...>风格,ISO / IEC官方意见?
- 在 c++ 中将 ISO 日期时间转换为本地日期时间并提取时间
- 在 Boost 中解析 RFC3339/ISO 8601 时间戳
- :<command-line>0:3:警告:ISO C++11 要求宏名称后有空格
- C++错误:ISO C++禁止声明.没有类型
- 警告:ISO C++禁止将字符串常量转换为'char*' [-Wwrite-strings]
- 将 OR 放入 if 语句会导致 ISO C++禁止指针和整数之间的比较(f 允许)