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