Код: Выделить всё
// foo.hpp
class Foo {
public:
int fn();
int fn2();
private:
static int priv();
static __attribute__((visibility("hidden"))) int priv2();
};
// foo.cpp
#include
template
int run(Func func)
{
int sum = 0;
for (int i = 0; i < 10'000'000; ++i) {
sum += func();
}
return sum;
}
int Foo::fn() { return run(&Foo::priv); }
int Foo::fn2() { return run(&Foo::priv2); }
int Foo::priv() { return 1; }
int Foo::priv2() { return 1; }
Представьте себе большую базу кода со множеством общих библиотек и можно гарантировать, что ровно одна общая библиотека предоставит определение частной функции-члена. Если это полезно, эту гарантию можно распространить на все функции-члены.
В этой ситуации есть ли какой-нибудь реальный вариант компиляции кода для включения встраивания для Foo::priv()< /code> без указания видимости вручную (или встраивания кода вручную)?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ernal-link
Мобильная версия