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!
};
Mobile version