Информация об изменениях

Сообщение Внутренние функции класса от 15.01.2019 15:33

Изменено 15.01.2019 15:34 Igore

Внтуренние функции класса
Добрый вечер, возник тут у меня вопрос, а как вы оформляете внутренние(служебные, чистые) функции класса.

Вот некоторые реализации, которые я встречал
1) Просто делаем private: someFunction(); и это соответственно идет в .h, минус никому кроме класса не нужно, будет включаться везде кто использует этот класс
2) Делаем class_inl.h включаем его в cpp, все функции помечаем inline, минус, нет гарантии что они заинлайнятся, появляется новый файл в проекте
3) В cpp делаем
  Скрытый текст
namespace {
namespace tmp {

void inner()
{
}

}
}

void Test::foo()
{
   tmp::inner();
// other code
}

Минусы, не знаю, встроится вызов функции или нет.
Плюсы, h чистый, все должно остаться в cpp
4) Увидел сейчас в исходника Qt-a, в cpp
  Скрытый текст
static inline inner()
{
}

void Test::foo()
{
   inner();
// other code
}

Вроде как все отлично, все должно встроится, хотя она и помечена как static.
Плюсы, h чистый, все должно остаться в cpp

Хочется совета, кто что использует или что было бы хорошо использовать.
Внутренние функции класса
Добрый вечер, возник тут у меня вопрос, а как вы оформляете внутренние(служебные, чистые) функции класса.

Вот некоторые реализации, которые я встречал
1) Просто делаем private: someFunction(); и это соответственно идет в .h, минус никому кроме класса не нужно, будет включаться везде кто использует этот класс
2) Делаем class_inl.h включаем его в cpp, все функции помечаем inline, минус, нет гарантии что они заинлайнятся, появляется новый файл в проекте
3) В cpp делаем
  Скрытый текст
namespace {
namespace tmp {

void inner()
{
}

}
}

void Test::foo()
{
   tmp::inner();
// other code
}

Минусы, не знаю, встроится вызов функции или нет.
Плюсы, h чистый, все должно остаться в cpp
4) Увидел сейчас в исходника Qt-a, в cpp
  Скрытый текст
static inline inner()
{
}

void Test::foo()
{
   inner();
// other code
}

Вроде как все отлично, все должно встроится, хотя она и помечена как static.
Плюсы, h чистый, все должно остаться в cpp

Хочется совета, кто что использует или что было бы хорошо использовать.