我正在处理char
和wchar_t
。
我正在编写一个辅助字符串类,它将一些正则表达式(带有提升)添加到一些字符串,但我同时拥有string
和wstring
. 现在我有 2 个函数,每个函数都有重复的代码。
int countFoo(const char *s, const char *foo) {
string text(s);
boost::regex e(foo);
int count = 0;
boost::smatch match;
while ( boost::regex_search( text, match, e ) ) {
text = match.suffix();
count++;
}
return count;
}
int countFoo(const wchar_t *s, const wchar_t *foo) {
wstring text(s);
boost::wregex e(foo);
int count = 0;
boost::wsmatch match;
while ( boost::regex_search( text, match, e ) ) {
text = match.suffix();
count++;
}
return count;
}
它有效,但我正在寻找一些优雅的方法(模板?一些 oop 魔术?函数指针?)来删除重复的代码。