我有以下代码:
在Windows上,我得到了“Success”而在Linux上,我得到了“Failure”。我在Windows使用MSVC 19.28,在Linux上使用GNU 9.3.0。为什么输出不同?
#include <string>
#include <regex>
#include <iostream>
int main()
{
std::string s;
s += '\x06';
s += '\x00';
std::regex r(std::string(1, '\x06') + '\x00');
std::smatch sm;
if (std::regex_search(s, sm, r))
{
std::cout << "Success\n";
return 0;
}
std::cout << "Failure\n";
}
在Windows上,我得到了“Success”而在Linux上,我得到了“Failure”。我在Windows使用MSVC 19.28,在Linux上使用GNU 9.3.0。为什么输出不同?
\x01
替换\x00
会怎样?如果有帮助的话,我会说这可能是MSVC的错误或C++标准的错误。 - yeputons