要么我滥用了函数前的std::
,要么是使用regex_replace
函数时我不明白。
例如,在下面的代码段中(后者在我的计算机上编译并正确运行),我不明白为什么编译器不需要std::
之前的范围规范regex_replace
(在cygwin上为g++ -Wall -std=c++11
,版本6.4.0),而所有其他std::
都出现。
#include <iostream>
#include <string>
#include <regex>
int main()
{
std::string myString("myRegexReplaceTest");
std::cout << myString << std::endl;
std::cout << regex_replace(myString, std::regex("a|e|i|o|u|y"), "[$&]") << std::endl;
return 0;
}
我想念什么?
关于, xflr6。
编辑:正如juanchopanza所指出的那样,答案是here,尽管我的问题提出的方式大不相同...而且答案比我最初预期的要完整得多。谢谢。