// nullcodecvt.h : header file for output file stream to support unicode filenames typedef codecvt < wchar_t, char, mbstate_t > NullCodecvtBase; class NullCodecvt : public NullCodecvtBase { public: explicit NullCodecvt( size_t _R=0 ) : NullCodecvtBase(_R) { } protected: virtual result do_in( mbstate_t& _State, const char* _F1, const char* _L1 , const char*& _Mid1, wchar_t* F2, wchar_t* _L2, wchar_t*& _Mid2 ) const { return noconv ; } virtual result do_out( mbstate_t& _State, const char* _F1, const char* _L1, const char*& _Mid1, char* F2, wchar_t* _L2, char*& _Mid2 ) const { return noconv ; } virtual result do_unshift( mbstate_t& _State, char* _F2, char* _L2, char*& _Mid2 ) const { return noconv ; } virtual int do_length( mbstate_t& _State, const char* _F1, const char* _L1, size_t _N2 ) const throw() { return (_N2 < (size_t)(_L1 - _F1)) ? _N2 : _L1 - _F1; } virtual bool do_always_noconv() const throw() { return true; } virtual int do_max_length() const throw() { return 2; } virtual int do_encoding() const throw() { return 2; } };