Похоже, что все операторы преобразования типов обязаны быть нестатическими членами.
У меня по крайней мере такой код не скомпилировался. Или можно обойти это ограничение? А то я не могу в реализацию класса влазить.
#include <atltime.h>
operator double( const CTime& t ) // error C2801: 'operator user-defined conversion' must be a non-static member
{
return ( double )t.GetTime();
}
operator CTime( const double t ) // error C2801: 'operator user-defined conversion' must be a non-static member
{
return CTime( ( __time64_t )t );
}