Вы не можете.Имя / тип класса не является значением само по себе, вам потребуется выражение типа
class Foobar {...};
std::cout << Foobar << std::endl;
, чтобы ваш статический operator<<
был пригоден для использования, но это не является допустимым C ++.Сводка грамматики на A.4 показывает, что указание имени типа здесь недопустимо.
Учтите также, что перегрузки операторов - это просто функции с ненадежными именами:
T operator<< (T, T)
^^^^^^^^^^ flaky name, basically same as:
T left_shift (T, T)
И функции в C ++ (и большинство других языков, например C #), могут работать только с экземплярами типов, но не с самими типами.
Однако C ++ предлагает шаблоны с аргументами типов, однако, которые не помогут вам перегружать функции типами.