int main() { { SafePerson p; p.SetName("Vicente"); } { Person_ts p; p->SetName("Vicente"); } { SafeMemberPerson p(1); p.SetName("Vicente"); } { Person2_ts p(1); p->SetName("Vicente"); } { HelperPerson p(1); p.SetName("Vicente"); } { Person3_ts p(1); p->SetName("Vicente"); } { Person3_ts p1(1); Person3_ts p2(2); Person3_ts p3(3); #if ! defined BOOST_NO_CXX11_AUTO_DECLARATIONS auto lk1 = p1.unique_synchronize(boost::defer_lock); auto lk2 = p2.unique_synchronize(boost::defer_lock); auto lk3 = p3.unique_synchronize(boost::defer_lock); #else boost::unique_lock_ptr<Person3> lk1 = p1.unique_synchronize(boost::defer_lock); boost::unique_lock_ptr<Person3> lk2 = p2.unique_synchronize(boost::defer_lock); boost::unique_lock_ptr<Person3> lk3 = p3.unique_synchronize(boost::defer_lock); #endif boost::lock(lk1,lk2,lk3); lk1->SetName("Carmen"); lk2->SetName("Javier"); lk3->SetName("Matias"); } return 0; }
int main() { { SafePerson p; p.SetName("Vicente"); } { Person_ts p; p->SetName("Vicente"); } { SafeMemberPerson p(1); p.SetName("Vicente"); } { Person2_ts p(1); p->SetName("Vicente"); } { HelperPerson p(1); p.SetName("Vicente"); } { Person3_ts p(1); p->SetName("Vicente"); } { Person3_ts p1(1); Person3_ts p2(2); Person3_ts p3(3); #if ! defined BOOST_NO_CXX11_AUTO_DECLARATIONS auto lk1 = p1.unique_synchronize(boost::defer_lock); auto lk2 = p2.unique_synchronize(boost::defer_lock); auto lk3 = p3.unique_synchronize(boost::defer_lock); #else boost::unique_lock_ptr<Person3> lk1 = p1.unique_synchronize(boost::defer_lock); boost::unique_lock_ptr<Person3> lk2 = p2.unique_synchronize(boost::defer_lock); boost::unique_lock_ptr<Person3> lk3 = p3.unique_synchronize(boost::defer_lock); #endif boost::lock(lk1,lk2,lk3); lk1->SetName("Carmen"); lk2->SetName("Javier"); lk3->SetName("Matias"); } #if ! defined BOOST_NO_CXX11_AUTO_DECLARATIONS \ && ! defined(BOOST_THREAD_NO_SYNCHRONIZE) { Person3_ts p1(1); Person3_ts p2(2); Person3_ts p3(3); auto t = boost::synchronize(p1,p2,p3); std::get<0>(t)->SetName("Carmen"); std::get<1>(t)->SetName("Javier"); std::get<2>(t)->SetName("Matias"); } { const Person3_ts p1(1); Person3_ts p2(2); const Person3_ts p3(3); auto t = boost::synchronize(p1,p2,p3); //std::get<0>(t)->SetName("Carmen"); std::get<1>(t)->SetName("Javier"); //std::get<2>(t)->SetName("Matias"); } #endif return 0; }