У меня есть класс, который определил определяемый пользователем оператор для TCHAR*, например
CMyClass::operator const TCHAR*() const
{
// returns text as const TCHAR*
}
Я хочу иметь возможность сделать что-то вроде
CMyClass myClass;
_tprintf(_T("%s"), myClass);
или даже
_tprintf(_T("%s"), CMyClass(value));
Но при попытке printf всегда печатает (null) вместо значения. Я также пробовал обычный оператор char*, а также варианты с const и т. д. Он работает правильно, только если я явно вызываю оператор или выполняю приведение, например
_tprintf(_T("%s\n"), (const TCHAR*)myClass);
_tprintf(_T("%s\n"), myClass.operator const TCHAR *());
Тем не менее, я не хочу бросать. Как этого добиться?
Обратите внимание, что есть возможность создать функцию с параметром const TCHAR*, чтобы она принудительно вызывала оператор TCHAR*, но это я тоже не хочу реализовывать.