正規表現を user-defined literals

正規表現リテラルで定義出来れば便利だろうか。

[ソース]

#include <boost/regex.hpp>
#include <string>

boost::regex
operator "" _r(char const* c_str, std::size_t len){
    return boost::regex(c_str);
}


int
main(){
    std::string str = "12-34-56";

    boost::smatch what;

    boost::regex_search(str, what, R"(^\d*)"_r);
    std::cout << what.str() << std::endl;

    boost::regex_search(str, what, R"(\-\d*\-)"_r);
    std::cout << what.str() << std::endl;

    boost::regex_search(str, what, R"(\d*$)"_r);
    std::cout << what.str() << std::endl;
    
    return 0;
}

[出力]

12
-34-
56


raw string literals との組み合わせで見やすくなっている気がする。