Почему код явно вызывает статический метод через нулевой указатель?

Я видел такой код в нескольких старых проектах:

class Class {
    static void Method() {}
};

((Class*)0)->Method();

Этот код содержит неопределенное поведение, поскольку включает разыменование нулевого указателя (независимо от того, что произойдет после этого). Это на самом деле не имеет смысла - здесь приведен каст для передачи имени типа компилятору, и тот, кто написал код выше, мог бы написать это вместо этого:

Class::Method();

и с последним все будет в порядке.

Зачем кому-то писать прежний код? Это известная идиома из старых добрых времен или как?

Ответы на вопрос(1)

Ваш ответ на вопрос