1
Могут ли современные компиляторы C++ (включая gcc
) оптимизировать следующий (макроподобный) код?Оптимизация компилятора C++
template<typename F, typename ...A>
err foo(F fn, A&&... args)
{
return fn(std::forward<A>(args)...) ? get_last_error() : err();
}
Например, она может оптимизировать следующий код
return foo(test, 5, 20, "bar");
к:
return test(5, 20, "bar") ? get_last_error() : err();
Попробуйте и убедитесь! 'gcc -O2 -S' - ваш друг. – zwol
Вы спрашиваете, способны ли современные компиляторы инкрустировать ..? – ildjarn
Да. Вставка функции с параметрами вариационного шаблона. –