BOOST_SCOPE_EXIT(&flag) {
} BOOST_SCOPE_EXIT_END
BOOST_SCOPE_EXIT和
BOOST_SCOPE_EXIT_END都是配合着使用的,
BOOST_SCOPE_EXIT()里面可以传入多个参数。其作用相当于回调函数,
在作用域结束之后程序会自动调用
BOOST_SCOPE_EXIT到
BOOST_SCOPE_EXIT_END之间的代码。
包含的头文件是
#include
<boost/scope_exit.hpp>
下面是一个简单的例子:
void PrintCout(const std::string& str)
{
bool submitted = false;
BOOST_SCOPE_EXIT(&submitted ) {
if (!submitted)
std::cout<<"false"<<std::endl;
else
std::cout<<"true"<<std::endl;
} BOOST_SCOPE_EXIT_END
submitted = ((str == "Y")? true:false);
}
int main(int argc, char* argv[])
{
std::string str;
std::cin>>str;
while(str != "q"){
PrintCout(str);
std::cin>>str;
}
}
这里的
BOOST_SCOPE_EXIT()可以传入多个参数
格式:
BOOST_SCOPE_EXIT(¶meter1,¶meter2,...)