В std::cout передаются какие-то левые указатели, не могу понять почему.
struct Aaa
{
typedef std::vector < std::string > Vec;
Aaa()
{
m_vec.push_back( "sobaka" );
m_vec.push_back( "mendeley" );
}
////
Vec m_vec;
};
struct Bbb
{
Aaa& get(){ return m_aaa; }
////
Aaa m_aaa;
};
/////////// main() ////////
...
Bbb b_obj;
Aaa &ref_a = b_obj.get();
BOOST_FOREACH( const Aaa::Vec::value_type &_val, ref_a.m_vec )
{
std::cout << _val << "\n";
}