Gibt es eine weit verbreitete „Tag“-Basisklasse für statische C++-Klassen?C++

Programme in C++. Entwicklerforum
Anonymous
 Gibt es eine weit verbreitete „Tag“-Basisklasse für statische C++-Klassen?

Post by Anonymous »

In C++ gibt es einige weit verbreitete Basisklassen mit Nullgröße, die zum „Taggen“ von Unterklassen verwendet werden, zum Beispiel boost::noncopyable.
Gibt es eine, die verwendet wird, um eine Klasse als nicht instanziierbar zu markieren, wie eine „statische Klasse“ in C#?
Bevor Sie mir sagen, dass ich dafür einen Namespace verwenden sollte: Meine Klasse hat eine Vorlage Argumente, Namespaces nicht.
Wenn es kein akzeptiertes „Tag“ gibt, gibt es dann ein Muster, das ein Compiler verwenden kann, um das statische Klassenmuster zu erkennen und Warnungen zu generieren, wenn versehentlich ein nicht statisches Mitglied erstellt wird?

Code: Select all

template
struct X
{
~X() = delete;

static int N; // I don't need this but static data members are typically allowed for static classes
int x; // warning please!
static bool f(typename my_trait::f_arg arg); // ok
bool g(); // warning please!
};

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post