Visual Studio 2010中提供stoi函数的原因
Why stoi function is available in Visual Studio 2010
我不明白为什么<string>在VisualStudio2010(Platform Toolset=v100)中可用,因为文档中说这是C++11的一个功能。
有人能帮我理解一下吗?
我也想将其与GCC 4.4.7一起使用。。。。这是我的初衷。
C++11在2011年之前是一种草案方式。由于stoi()
要将其纳入标准,许多编译器在C++11最终确定之前就已经添加了它。在C++11最终确定之前使用C++11功能是实验性的,因为一旦标准获得批准,情况可能会发生变化
运行
#include <iostream>
#include <string>
int main()
{
int foo = std::stoi("5");
}
在godbolt.org上,GCC 4.4.7和-std=c++0x
确实进行了编译,所以看起来你已经准备好使用它了
实时示例
允许编译器提供扩展和库函数,而这些扩展和库功能不是它们所针对的C++标准的一部分。虽然VC++2010并不完全符合C++11标准,但它确实支持C++11中的某些功能,而不是C++98中的某些功能(如auto
和static_assert
)。
使用这样的"前向兼容"功能会有一定的风险,因为编译器编写者所针对的标准草案可能在编译器发布后发生了变化,但到2010年,C++11已经变得相当稳定,而且stoi
的规范在最终标准中几乎肯定与在VC++2010中实现的标准没有变化。
本页提供了有关哪些VC++版本支持哪些C++11功能的信息。
通常在采用最终版本之前很久就已经讨论过该标准。在讨论过程中,发布了《标准工作草案》等文件。
有时,在采用本标准的最终修订版之前,由于C++标准委员会的成员一致同意,一些特性将被包含在本标准中是很清楚的。
stoi
不是一个语言功能(尽管VS2010已经对c++11的一些功能提供了一些最低限度的支持),而是一个库函数。碰巧的是,到那时,MS编译器团队已经在标准库的实现中实现了该函数。
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 有人知道为什么在开关中使用stoi函数会返回恒定的错误吗
- 我想使用 std::stoi 函数在 cpp 中将字符串转换为整数,因为我想在字符串中找到不同数字的总和(在下级酶中)
- 有没有类似于stoi的函数可以用于模板类
- 我应该在 stoi() 函数中放入多少位
- "stoi"没有在此范围内声明,即使添加 -std=c++0x 和自定义函数,仍然适用
- 检查C++中stoi()函数的int极限
- Visual Studio 2010中提供stoi函数的原因
- Eclipse Luna 无法解析 c++11 函数"stoi"
- stoi函数在内存位置0x0035E8D8给出错误:std::invalid_argument.c++