Почему так не работает
// 1.
BOOST_SCOPE_EXIT()
{
puts("Exit");
} BOOST_SCOPE_EXIT_END
А так работает:
// 2.
int dummy;
BOOST_SCOPE_EXIT( (dummy) )
{
puts("Exit");
} BOOST_SCOPE_EXIT_END
А если передать даже пустую последовательность, то не работает все равно
// 3.
BOOST_SCOPE_EXIT( () )
{
puts("Exit");
} BOOST_SCOPE_EXIT_END
Похоже нет проверок на пустую последовательность.
Вариант 1 предпочтительней всего, но 3-й бы тоже сгодился если по другому никак.
Не хочется заводить лишнюю переменную там, где она не нужна.