HepMC::is_smart_ptr< std::weak_ptr< T > > Node1 HepMC::is_smart_ptr < std::weak_ptr< T > > Node2 true_type Node2->Node1