Listing 1: CaeserRotateFacet.h
#ifndef CAESAR_ROTATE_FACET_H #define CAESAR_ROTATE_FACET_H #include <locale> #include <cstddef> class CaesarRotateCvt : public std::codecvt<char, char, std::mbstate_t> { public: explicit CaesarRotateCvt( std::size_t refs = 0 ); protected: virtual ~CaesarRotateCvt( ); virtual std::codecvt_base::result do_in( std::mbstate_t & state, const char * from, const char * from_end, const char *& from_next, char * to, char * to_limit, char *& to_next ) const; virtual std::codecvt_base::result do_out( std::mbstate_t & state, const char * from, const char * from_end, const char *& from_next, char * to, char * to_limit, char *& to_next ) const; virtual std::codecvt_base::result do_unshift( std::mbstate_t & state, char * to, char * to_limit, char *& to_next ) const; virtual int do_encoding( ) const throw( ); virtual bool do_always_noconv( ) const throw( ); virtual int do_length( const std::mbstate_t &, const char * from, const char * end, std::size_t max ) const; virtual int do_max_length( ) const throw( ); }; #endif