void testing_cxx11() {
using boost::spirit::qi::uint_parser;
using boost::spirit::qi::char_;
using boost::typeindex::type_id;
uint_parser<unsigned short, 10, 2, 2> u2_;
const auto print_input = [](auto&& v) {
std::cerr << "typeid(v) = " << type_id<decltype(v)>() << '\n';
};
auto parser = ((char_('+')|char_('-')) >> u2_ >> ':' >> u2_)[
print_input
];
std::cerr << "typeid(parser) = " << type_id<decltype(parser)>() << '\n';
const char data[] = "-11:30";
const char* first = data;
const char* const end = data + sizeof(data);
const bool success = boost::spirit::qi::parse(first, end, parser);
assert(success && first == end);
}