Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
inline_function (with_params(int a, int b))
{
printf("%d+%d=%d\n",a,b,a+b);
} with_name(plus);
struct {
void operator() (int a, int b) {
printf("%d+%d=%d\n",a,b,a+b);
}
} plus;
void, в то время как простое создание функтора сохраняет за нами возможность определить тип возвращаемого значения. :)int foo( int foo_var )
{
/*code*/
struct local
{
static int bar( int bar_var )
{
/*code*/
return bar_var;
}
}
return local::bar(foo_var);
}
Visual Studio со включенной оптимизацией компилятора просто-напросто вырежет создание inline_function() как бесполезное. Логика компилятора понятна (все равно этот создаваемый объект никто не будет использовать, так зачем его создавать?) но представляет опасность.
Вложенные функции на C++