Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::stoi是如何实现的?_C++ - Fatal编程技术网

C++ std::stoi是如何实现的?

C++ std::stoi是如何实现的?,c++,C++,大多数日常用例已经转换成标准库中可用的函数。然而,我想知道他们中的一些人是如何在幕后工作的。就像std::stoi后面的实际代码是什么一样?最简单的方法是调用适当的C函数,在本例中是strtol,检查发生了什么,如果失败则抛出适当的异常,然后返回结果。最简单的方法是调用相应的C函数,在本例中为strtol,检查发生的情况,如果失败则抛出相应的异常,然后返回结果 我想知道他们中的一些人是如何在幕后工作的。就像是什么 std::stoi背后的实际代码 我认为您可以通过以下类似的搜索找到“实际”代码:

大多数日常用例已经转换成标准库中可用的函数。然而,我想知道他们中的一些人是如何在幕后工作的。就像std::stoi后面的实际代码是什么一样?

最简单的方法是调用适当的C函数,在本例中是
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

我认为您应该能够在您的系统上进行类似的搜索

祝你好运

我想知道他们中的一些人是如何在幕后工作的。就像是什么 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

我认为您应该能够在您的系统上进行类似的搜索


祝你好运。

。你可以从你最喜欢的开源编译器中打开该文件并查看。你也可以查看类似的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()背后的代码?