Организация функций утилиты в С++

У меня есть 3 небольших (по 15 строк) функций утилиты, лучший способ их организовать? помещать их в собственное пространство имен в файл заголовка?

Ответы

Ответ 1

Создайте отдельный файл с именем utility.hpp и поместите в него все объявления функций, предпочтительно под его собственным пространством имен, которое может быть просто utility, а затем поместите определения в utility.cpp. Если какая-либо из функций утилиты является шаблоном функции, вы должны поместить определение в заголовок.

Избегайте определять утилиту class и помещать в нее все функции утилиты как члены static. Это серьезно плохая идея. Одна из причин, по которой это плохо, заключается в том, что он не может воспользоваться аргументом Dependent name Lookup (ADL).

Вместо этого используйте пространство имен.

Пример

//utility.hpp

namespace utility
{
   void function1();
   void function2();
   void function3();

   template<typename T>
   void function4()
   {
      //function template definition should be here!
   }
}

И затем,

//utility.cpp

#include "utility.hpp"

namespace utility
{
   void function1() 
   {
        //code
   }
   void function2() 
   {
        //code
   }
   void function3() 
   {
        //code
   }
}

Ответ 2

вы можете проверить google styleguide для С++ для некоторых полезных советов по этой теме... однако: есть много стигелидов, как вы может делать что-то более или менее полезными способами... Лучшая практика - выбрать один стиль, а затем придерживаться его для всего проекта для согласованности... (если вы/ваши команды не почувствуете себя очень неудобно...)

Ответ 3

Создайте отдельный класс утилиты с Util.h(декларациями) и Util.cpp с реализацией. Вы также можете использовать его, используя интерфейс утилиты, но зависит.