I would like to create a key-value data structure that would be useful for responding to the events of string matching to regex patterns. So I am trying to work it out with a Boost library:
When I try to compile it (unfortunately I am forced to use quite old software - gcc 4.4.7, boost 1.41, therefore C++11 support is very limited):
boost_regexp.cpp: In function ‘int main(int, char**)’:
boost_regexp.cpp:58: error: ambiguous overload for ‘operator=’ in
‘resolver = boost::assign::map_list_of(const Key&, const T&) [with Key
= boost::regex, T = boost::_bi::bind_t<void, void (*)(), boost::_bi::list0>](((const boost::_bi::bind_t<void, void (*)(),
boost::_bi::list0>&)((const boost::_bi::bind_t<void, void (*)(),
boost::_bi::list0>*)(& boost::bind [with R =
void](SuOpenedCallback))))).boost::assign_detail::generic_list<T>::operator()
[with U = boost::regex, U0 = boost::_bi::bind_t<void, void (*)(),
boost::_bi::list0>, T = std::pair<boost::basic_regex<char,
boost::regex_traits<char, boost::cpp_regex_traits<char>,
boost::_bi::bind_t<void, void (*)(), boost::_bi::list0>](((const
boost::regex&)((const boost::regex*)(& su_closed))), ((const
boost::_bi::bind_t<void, void (*)(), boost::_bi::list0>&)((const
boost::_bi::bind_t<void, void (*)(), boost::_bi::list0>*)(&
boost::bind [with R = void](SuClosedCallback)))))’
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_map.h:251:
note: candidates are: std::map<_Key, _Tp, _Compare, _Alloc>&
std::map<_Key, _Tp, _Compare, _Alloc>::operator=(const std::map<_Key,
_Tp, _Compare, _Alloc>&) [with _Key = boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char>, _Tp =
boost::function<void()>, _Compare = std::less<boost::basic_regex<char,
boost::regex_traits<char, boost::cpp_regex_traits<char>, _Alloc
= std::allocator<std::pair<const boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char>,
boost::function<void()>]
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_map.h:266:
note: std::map<_Key, _Tp, _Compare, _Alloc>&
std::map<_Key, _Tp, _Compare, _Alloc>::operator=(std::map<_Key, _Tp,
_Compare, _Alloc>&&) [with _Key = boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char>, _Tp =
boost::function<void()>, _Compare = std::less<boost::basic_regex<char,
boost::regex_traits<char, boost::cpp_regex_traits<char>, _Alloc
= std::allocator<std::pair<const boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char>,
boost::function<void()>]
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_map.h:286:
note: std::map<_Key, _Tp, _Compare, _Alloc>&
std::map<_Key, _Tp, _Compare,
_Alloc>::operator=(std::initializer_list<std::pair<const _Key, _Tp>) [with _Key = boost::basic_regex<char, boost::regex_traits<char,
boost::cpp_regex_traits<char>, _Tp = boost::function<void()>,
_Compare = std::less<boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char>, _Alloc
= std::allocator<std::pair<const boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char>,
boost::function<void()>] make: *** [all] Error 1