В приложении MFC мне нравится сопоставлять значения даты SQL (CDBVariant
) с MFC CTime
. Поскольку записи базы данных могут быть NULL (значение не существует), мне интересно, является ли CTime
допустимым. remark in the MFC documentation к CTime::Format
заставляет меня думать, это должно быть возможно:Является ли CTime нулевым?
Если статус этого объекта CTime имеет нулевое значение, возвращаемое значение является пустой строкой.
- Но как установить этот статус, это возможно?
- Если это невозможно, я думаю, что
boost::optional<CTime>
будет хорошей альтернативой?
По умолчанию ctor создает неинициализированное значение CTime, поэтому вы можете назначить его. –
@roger_rowland: Я пробовал 'CTime tmp' и' CTime tmp = CTime() '. В обоих случаях 'Format' возвращает' 01.01.1970 '(допустимая дата), а не пустую строку, как указано в документации. –
Это боль - я думаю, следующая лучшая вещь - обернуть CTime и bool в структуре и использовать их вместо этого. Используйте bool для отметки непустого значения CTime. У кого-нибудь есть другие идеи? –