id summary reporter owner description type status milestone component version severity resolution keywords cc 2397 for_each: do not expose basic_string (implementation type) François Barel Joel de Guzman "{{{symbols::for_each}}}'s argument currently accepts two args: {{{(basic_string& str, T& val)}}} [[br]] I know it's a slight interface change, but I think it should be changed to: {{{(Char const* str, T& val)}}} (i.e. change {{{s}}} into {{{s.c_str()}}} in {{{f}}} calls in {{{tst_map.hpp}}} and {{{detail/tst.hpp}}}), since: 1. if I'm not mistaken the API is {{{Char const*}}} everywhere else anyway (and {{{basic_string}}} is only used internally as a {{{for_each}}} implementation detail, but is not exposed anywhere else), 2. it lets the user do: {{{ sym1.for_each(symX.add); sym2.for_each(symX.add); sym3.for_each(symX.add); ... }}} to merge multiple symbol tables together, which is nicer than having to write a one-line functor around {{{symX.add}}} just to do the required {{{c_str}}} call. Thanks, François" Feature Requests closed Boost 1.37.0 spirit Boost 1.36.0 Problem fixed spirit2 symbols for_each