class Encoder: public Codec::Encoder
{
private:
- Endian endian;
- bool emit_bom;
+ Endian endian = BIG;
+ bool emit_bom = true;
public:
Encoder(ErrorMode em = DEFAULT, Endian en = BIG);
- virtual void encode_char(unichar, std::string &);
+ void encode_char(unichar, std::string &) override;
private:
- virtual void transliterate(unichar, std::string &);
+ void transliterate(unichar, std::string &) override;
};
class Decoder: public Codec::Decoder
{
private:
- Endian endian;
+ Endian endian = AUTO;
public:
Decoder(ErrorMode em = DEFAULT, Endian en = AUTO);
- virtual unichar decode_char(const std::string &, std::string::const_iterator &);
+ unichar decode_char(const std::string &, std::string::const_iterator &) override;
private:
unichar decode_unit(const std::string &, const std::string::const_iterator &, std::string::const_iterator &);
};
private:
- Endian endian;
+ Endian endian = AUTO;
public:
Utf16(ErrorMode em = DEFAULT, Endian en = AUTO):
endian(en)
{ }
- virtual const char *get_name() const
- { return endian==BIG ? "UTF-16-BE" : "UTF-16-LE"; }
+ const char *get_name() const override
+ { return endian==BIG ? "UTF-16-BE" : endian==LITTLE ? "UTF-16-LE" : "UTF-16"; }
- virtual Encoder *create_encoder(ErrorMode em = DEFAULT) const
+ Encoder *create_encoder(ErrorMode em = DEFAULT) const override
{ return new Encoder(get_error_mode(em), endian); }
- virtual Decoder *create_decoder(ErrorMode em = DEFAULT) const
+ Decoder *create_decoder(ErrorMode em = DEFAULT) const override
{ return new Decoder(get_error_mode(em), endian); }
};