Я видел такой код в нескольких старых проектах:
class Class {
static void Method() {}
};
((Class*)0)->Method();
Этот код содержит поведение undefined, поскольку он включает разыменование нулевого указателя (независимо от того, что происходит потом). Это действительно не имеет смысла - приведение должно содержать имя типа для компилятора, и тот, кто написал код выше, мог бы написать это вместо:
Class::Method();
и последнее будет в порядке.
Зачем кому-то писать прежний код? Это известная идиома из старых добрых дней или что?