如何使c++;编译器接受2_147_483.78作为有效浮点数 我从客户端的输入文件中有一个C++自动生成代码。不知何故,客户更喜欢将浮点数写为2_147_483.78,根据它们,浮点数不代表任何内容,理想情况下应替换为空,但出于可读性的目的,他们保留了这些内容&不会删除这些内容。当C++标准委员会在C++(14标准)上制定了一个十进制分隔符(而不是一个不同的字符)(例如下划线)时,他们可以以最小的方式来完成自动生成的代码。

如何使c++;编译器接受2_147_483.78作为有效浮点数 我从客户端的输入文件中有一个C++自动生成代码。不知何故,客户更喜欢将浮点数写为2_147_483.78,根据它们,浮点数不代表任何内容,理想情况下应替换为空,但出于可读性的目的,他们保留了这些内容&不会删除这些内容。当C++标准委员会在C++(14标准)上制定了一个十进制分隔符(而不是一个不同的字符)(例如下划线)时,他们可以以最小的方式来完成自动生成的代码。,c++,C++,我不认为完全笼统地解决您的问题是可能的,特别是如果您的客户机在这样一个数字上使用了一个前导下划线,那么它将被解释为一个可能改变程序行为的变量名 所以,如果你要开始某种预处理器,你总是会遇到边缘情况,其中一些可能是有害的,不会引起注意 我认为最好的办法是说服客户不要这样做,或者建议他们使用勾号而不是下划线,并将工具链迁移到C++14。你的客户会写信的 2'147'483.78 而不是 2_147_483.78您可能可以使用正则表达式替换来处理源代码以删除这些代码。你能给我们举一个例子吗?是的,只需

我不认为完全笼统地解决您的问题是可能的,特别是如果您的客户机在这样一个数字上使用了一个前导下划线,那么它将被解释为一个可能改变程序行为的变量名

所以,如果你要开始某种预处理器,你总是会遇到边缘情况,其中一些可能是有害的,不会引起注意

我认为最好的办法是说服客户不要这样做,或者建议他们使用勾号而不是下划线,并将工具链迁移到C++14。你的客户会写信的

2'147'483.78

而不是


2_147_483.78

您可能可以使用正则表达式替换来处理源代码以删除这些代码。你能给我们举一个例子吗?是的,只需要应用你喜欢的字符串技术,不管是正则表达式还是简单的迭代和删除。什么生成C++文件?可能是一些脚本/应用程序?我建议修改脚本/应用程序,否则写一个新的脚本来后期处理这些文件。您不能要求编译器执行此操作。你必须修改C++源代码,我不知道你可以把它放在文字里。你可以从C++ 14开始。这就解释了为什么我没有听说过它。