id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 6026,phoenix block statement tries to copy objects instead of references,armagvvg@…,Kohei Takahashi,"Let's use a simplest class, that can't be copied: {{{ class A { A() {} A(const A&); public: static A* construct() { return new A(); } const A& operator<<(const char *p) const { return *this; } }; A *pa = A::construct(); A &a = *pa; }}} The code which use this object one time normally works: {{{ (boost::phoenix::ref(a) << boost::phoenix::placeholders::_1)(""aaa""); }}} But when I try to use this object two times, I get an error: {{{ ( boost::phoenix::ref(a) << boost::phoenix::placeholders::_1 ,boost::phoenix::ref(a) << boost::phoenix::placeholders::_1 )(""aaa""); }}} Result: 'A::A' : cannot access private member declared in class 'A' Expecting: pass compilation and invoke ""A::operator<<"" two times. Note: preprocessing directive ""BOOST_SPIRIT_USE_PHOENIX_V3"" was defined.",Bugs,assigned,To Be Determined,phoenix,Boost 1.47.0,Problem,,,