本文整理汇总了C++中WP::lock方法的典型用法代码示例。如果您正苦于以下问题:C++ WP::lock方法的具体用法?C++ WP::lock怎么用?C++ WP::lock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WP
的用法示例。
在下文中一共展示了WP::lock方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: weak_shared
void weak_shared(
WP & first,
SP & second
){
const char * testfile = boost::archive::tmpnam(NULL);
BOOST_REQUIRE(NULL != testfile);
BOOST_CHECK(! first.expired());
int firstm = first.lock()->m_x;
int secondm = second->m_x;
save2(testfile, first, second);
// Clear the pointers, thereby destroying the objects they contain
first.reset();
second.reset();
load2(testfile, first, second);
BOOST_CHECK(! first.expired());
// Check data member
BOOST_CHECK(firstm == first.lock()->m_x);
BOOST_CHECK(secondm == second->m_x);
// Check pointer to vtable
BOOST_CHECK(::dynamic_pointer_cast<Sub>(first.lock()));
BOOST_CHECK(::dynamic_pointer_cast<Sub>(second));
std::remove(testfile);
}
示例2: save_and_load3
void save_and_load3(
SP & first,
SP & second,
WP & third
) {
const char * testfile = boost::archive::tmpnam(NULL);
BOOST_REQUIRE(NULL != testfile);
save3(testfile, first, second, third);
// Clear the pointers, thereby destroying the objects they contain
first.reset();
second.reset();
third.reset();
load3(testfile, first, second, third);
BOOST_CHECK(first == second);
BOOST_CHECK(first == third.lock());
std::remove(testfile);
}