У меня есть следующий фрагмент кода: Как вызвать функцию-член в выводе области.Вызов функции объекта в области увеличения объема
class A
{
public:
void foo();
void bar();
};
void A::foo()
{
BOOST_SCOPE_EXIT(void)
{
bar(); // Does not compile
}
BOOST_SCOPE_EXIT_END
}
void A::bar() {}
void foo4()
{
A a;
a.foo();
}
Err сообщение
boost_scope_exit.cpp: In static member function ‘static void
A::foo()::boost_se_guard_t_71::boost_se_body()’:
boost_scope_exit.cpp:73:13: error: cannot call member function ‘void
A::bar()’ without object
bar(); // Does not compile
^
Как я могу вызвать функцию-член из области выхода.
Найденный ответ в документации повышающего:
Просто поиск «Захват объекта это»
Я не использовал 'BOOST_SCOPE_EXIT', но глядя на документацию, что я думаю, что вам нужно, это' BOOST_SCOPE_EXIT (и это) { this-> бар(); } BOOST_SCOPE_EXIT_END' –