C++ std::stoi是如何实现的?
大多数日常用例已经转换成标准库中可用的函数。然而,我想知道他们中的一些人是如何在幕后工作的。就像std::stoi后面的实际代码是什么一样?最简单的方法是调用适当的C函数,在本例中是C++ std::stoi是如何实现的?,c++,C++,大多数日常用例已经转换成标准库中可用的函数。然而,我想知道他们中的一些人是如何在幕后工作的。就像std::stoi后面的实际代码是什么一样?最简单的方法是调用适当的C函数,在本例中是strtol,检查发生了什么,如果失败则抛出适当的异常,然后返回结果。最简单的方法是调用相应的C函数,在本例中为strtol,检查发生的情况,如果失败则抛出相应的异常,然后返回结果 我想知道他们中的一些人是如何在幕后工作的。就像是什么 std::stoi背后的实际代码 我认为您可以通过以下类似的搜索找到“实际”代码:
strtol
,检查发生了什么,如果失败则抛出适当的异常,然后返回结果。最简单的方法是调用相应的C函数,在本例中为strtol
,检查发生的情况,如果失败则抛出相应的异常,然后返回结果
我想知道他们中的一些人是如何在幕后工作的。就像是什么
std::stoi背后的实际代码
我认为您可以通过以下类似的搜索找到“实际”代码:
- 在Ubuntu上,我的makefile创建了一个.depends文件,其中包含: g++-5-m64-O3-ggdb-std=c++14-Wall-Wextra-Wshadow-Wnon- 虚拟dtor-pedantic-Wcast align-Wcast qual-Wconversion -Wpointer arith-Wunused-Woverloaded virtual-O0-M*.cc>。取决于 (我尝试保持此命令的编译器选项与我的正常编译匹配。)
- 在浏览器中,我查看 要确定这一点 std::stoi包含在std::basic_字符串中(在页面顶部)
- 在我的编辑器中,(或)使用grep,我在.depends文件中搜索“basic_string” grep--color-nH-e“basic_string”。取决于 grep在我当前的depends文件中报告字符串214次,其中 更改代码时更改大小 一份报告的示例: .dependens:14105:/usr/include/c++/5/bits/basic_string.h\
- 在编辑器中,我打开指定的文件 “/usr/include/c++/5/bits/basic_string.h” 然后搜索“stoi”,它似乎只存在两次 这表示编译器的版本5
- 在Ubuntu上,我的makefile创建了一个.depends文件,其中包含: g++-5-m64-O3-ggdb-std=c++14-Wall-Wextra-Wshadow-Wnon- 虚拟dtor-pedantic-Wcast align-Wcast qual-Wconversion -Wpointer arith-Wunused-Woverloaded virtual-O0-M*.cc>。取决于 (我尝试保持此命令的编译器选项与我的正常编译匹配。)
- 在浏览器中,我查看 要确定这一点 std::stoi包含在std::basic_字符串中(在页面顶部)
- 在我的编辑器中,(或)使用grep,我在.depends文件中搜索“basic_string” grep--color-nH-e“basic_string”。取决于 grep在我当前的depends文件中报告字符串214次,其中 更改代码时更改大小 一份报告的示例: .dependens:14105:/usr/include/c++/5/bits/basic_string.h\
- 在编辑器中,我打开指定的文件 “/usr/include/c++/5/bits/basic_string.h” 然后搜索“stoi”,它似乎只存在两次 这表示编译器的版本5
祝你好运。。你可以从你最喜欢的开源编译器中打开该文件并查看。你也可以查看类似的boost函数。如果您的编译器不是开源的,可能会更容易。对于VS2015(专业版),您可以在C:\Program Files(x86)\Windows Kits\10\source\10.0.10240.0\ucrt\inc\corecrt\u internal\u strtox中查找它。h函数名为parse\u integer。strtol使用与实现相同的函数。您可以从最喜欢的开源编译器中打开该文件并查看。您也可以查看类似的boost函数。如果您的编译器不是开源的,可能会更容易。对于VS2015(专业版),您可以在C:\Program Files(x86)\Windows Kits\10\source\10.0.10240.0\ucrt\inc\corecrt\u internal\u strtox中查找它。h函数名为parse\u integer。strtol使用与实现相同的功能。我认为这并不能回答问题。OP询问“std::stoi背后的实际代码是什么”,但stoi只是一个例子。i、 你怎么知道strtol是std::stoi实现的一部分?这如何帮助OP找到std::stof()背后的代码?我认为这并不能回答这个问题。OP询问“std::stoi背后的实际代码是什么”,但stoi只是一个例子。i、 你怎么知道strtol是std::stoi实现的一部分?这如何帮助OP找到std::stof()背后的代码?