Всегда избегайте создания бесполезных символов .
Если в классе нет необходимости, создайте набор функций в пространстве имен.Если вашему набору функций необходимо манипулировать некоторыми данными, то стоит использовать статический класс / синглтон.
Мое правило, когда я разрабатываю приложение, - избегать использования элементов, вызываемых из любого места.
Чем больше вы ограничиваете себя (или пользователь в случае библиотеки), тем безопаснее ваш код (меньше ошибок из-за неправильного использования).
Если вам действительно нужно создать статический класс, я могу предложить вам использовать конструктор, подобный этому:
class Foo
{
public:
Foo() = delete;
};
Во избежание путаницы между экземпляром класса и полностью статическим классом.
Если вам нравится процветать, вы можете настроить что-то вроде этого:
#define STATIC_CLASS(class_name) public: class_name() = delete
class Foo
{
STATIC_CLASS(Foo);
};