]> git.tdb.fi Git - libs/core.git/commitdiff
Use default member initializers and constructor delegation
authorMikko Rasa <tdb@tdb.fi>
Sun, 31 Oct 2021 11:08:16 +0000 (13:08 +0200)
committerMikko Rasa <tdb@tdb.fi>
Sun, 31 Oct 2021 17:12:05 +0000 (19:12 +0200)
64 files changed:
source/core/android/mainthread.cpp
source/core/android/mainthread.h
source/core/application.cpp
source/core/application.h
source/core/getopt.cpp
source/core/getopt.h
source/core/module.h
source/core/mutex.h
source/core/process.cpp
source/core/process.h
source/core/refptr.h
source/core/semaphore.h
source/core/thread.cpp
source/core/thread.h
source/core/unix/semaphore.cpp
source/core/variant.h
source/debug/backtrace.h
source/debug/errorreporter.h
source/debug/profiler.cpp
source/debug/profiler.h
source/debug/profilingscope.h
source/fs/filemonitor.cpp
source/fs/filemonitor.h
source/fs/path.cpp
source/fs/path.h
source/fs/stat.cpp
source/fs/stat.h
source/io/asset.h
source/io/base.cpp
source/io/base.h
source/io/buffered.cpp
source/io/buffered.h
source/io/eventobject.cpp
source/io/eventobject.h
source/io/eventreader.h
source/io/handle.h
source/io/memory.cpp
source/io/memory.h
source/io/poll.cpp
source/io/poll.h
source/io/slice.cpp
source/io/slice.h
source/io/unix/eventreader.cpp
source/io/windows/eventreader.cpp
source/io/zlibcompressed.cpp
source/io/zlibcompressed.h
source/stringcodec/codec.h
source/stringcodec/iso2022jp.cpp
source/stringcodec/iso2022jp.h
source/stringcodec/jisx0208.h
source/stringcodec/utf16.cpp
source/stringcodec/utf16.h
source/strings/fmt.cpp
source/strings/fmt.h
source/strings/lexicalcast.h
source/strings/regex.cpp
source/strings/regex.h
source/strings/regmatch.h
source/time/datetime.cpp
source/time/datetime.h
source/time/timedelta.h
source/time/timer.cpp
source/time/timer.h
source/time/timestamp.h

index 8ce484a0dee75e4a014a7440d2775c891fbe18a3..b816bf638c4543957b3a0a7814c2010ff0f561ec 100644 (file)
@@ -15,8 +15,7 @@ namespace Android {
 
 MainThread::MainThread(ANativeActivity *a):
        asset_manager(a->assetManager),
-       int_data_path(a->internalDataPath),
-       starting_up(true)
+       int_data_path(a->internalDataPath)
 {
        attach_to_activity(a);
        startup_mutex.lock();
index 609300fb85a8a4db64e680c9f4dfd7f754d78bc4..99a641b6e71084828d0c0b88364ff0425f697751 100644 (file)
@@ -20,10 +20,10 @@ public:
        sigc::signal<void, AInputQueue *> signal_input_queue_destroyed;
 
 private:
-       ANativeActivity *activity;
-       AAssetManager *asset_manager;
+       ANativeActivity *activity = 0;
+       AAssetManager *asset_manager = 0;
        FS::Path int_data_path;
-       bool starting_up;
+       bool starting_up = true;
        Mutex startup_mutex;
 
 public:
index 2c6dc967296edeba82336d724096650b4db34a94..dda4440270e64c78e5388ea282afb9993c6525fb 100644 (file)
@@ -21,8 +21,7 @@ const char *Application::argv0_ = 0;
 string Application::name_;
 void *Application::data_ = 0;
 
-Application::Application(const string &n):
-       exit_code(0)
+Application::Application(const string &n)
 {
        if(app_)
                throw logic_error("instance already exists");
index 93fccd8de94e9d6b300d66f37d5de2a82bb5840d..40215ef964aff63965d50cfb3fdd55f3fc4a3cd1 100644 (file)
@@ -23,8 +23,8 @@ protected:
                virtual Application *create_app(int, char **) = 0;
        };
 
-       bool done;
-       int exit_code;
+       bool done = false;
+       int exit_code = 0;
 
 private:
        static Starter *starter_;
index 13e235f25152912a5f86466b129cd2a9bf5999c7..cbc0afb0d76e9d5eec8f79e4a835d1cf01ff7700 100644 (file)
@@ -6,8 +6,7 @@ using namespace std;
 
 namespace Msp {
 
-GetOpt::GetOpt():
-       help(false)
+GetOpt::GetOpt()
 {
        add_option("help", help, NO_ARG).set_help("Displays this help");
 }
@@ -318,9 +317,6 @@ GetOpt::OptionImpl::OptionImpl(char s, const string &l, const Store &t, ArgType
        shrt(s),
        lng(l),
        arg_type(a),
-       seen_count(0),
-       ext_seen_count(0),
-       metavar("ARG"),
        store(t.clone())
 { }
 
index 405864bb27bfdda1668537a35630550465963482..a1208f4c1fa9e423314225bb87e8fc91903149e8 100644 (file)
@@ -117,14 +117,14 @@ private:
        class OptionImpl: public Option
        {
        protected:
-               char shrt;
+               char shrt = 0;
                std::string lng;
-               ArgType arg_type;
-               unsigned seen_count;
-               unsigned *ext_seen_count;
+               ArgType arg_type = NO_ARG;
+               unsigned seen_count = 0;
+               unsigned *ext_seen_count = 0;
                std::string help;
-               std::string metavar;
-               Store *store;
+               std::string metavar = "ARG";
+               Store *store = 0;
 
        public:
                OptionImpl(char, const std::string &, const Store &, ArgType);
@@ -147,9 +147,9 @@ private:
        {
        private:
                std::string name;
-               ArgType type;
+               ArgType type = REQUIRED_ARG;
                std::string help;
-               Store *store;
+               Store *store = 0;
 
        public:
                ArgumentImpl(const std::string &, const Store &, ArgType);
@@ -203,7 +203,7 @@ private:
                { data.push_back(lexical_cast<typename T::value_type>(a)); }
        };
 
-       bool help;
+       bool help = false;
        std::vector<OptionImpl *> opts;
        std::vector<ArgumentImpl *> args;
        std::vector<std::string> args_raw;
index 4a2f04c15ce7bb62f03c1976945317141e200106..339af08e99b6fc2f31986179ed4c14f1082892bc 100644 (file)
@@ -11,7 +11,7 @@ class Module: private NonCopyable
 private:
        struct Private;
 
-       Private *priv;
+       Private *priv = 0;
 
 public:
        Module(const std::string &);
index 3d3dc84dd3bca28e65c0ea770b00cc6851b6f552..dc9a2285be5919c519c7d67d7adfdee9ebea0711 100644 (file)
@@ -17,7 +17,7 @@ class Mutex: private NonCopyable
 private:
        struct Private;
 
-       Private *priv;
+       Private *priv = 0;
 
 public:
        Mutex();
index dfbea341310d19a039e4924ee122c1c0fd054f9d..92475d4286782642dac9da3e989544947741f282 100644 (file)
@@ -10,26 +10,11 @@ Process *Process::_self = 0;
 
 Process::Process(const Private &p):
        priv(new Private(p))
-{
-       init();
-}
+{ }
 
 Process::Process():
        priv(new Private)
-{
-       init();
-}
-
-void Process::init()
-{
-       redirect = false;
-       cin = 0;
-       cout = 0;
-       cerr = 0;
-       running = false;
-       finished = false;
-       exit_code = 0;
-}
+{ }
 
 Process &Process::self()
 {
index 55b62cd450c534309d72dd7d39fa96f2cedbfb1c..f21ecb337d76d5c8718b056478597968f04c0f9a 100644 (file)
@@ -30,20 +30,19 @@ public:
 private:
        struct Private;
 
-       Private *priv;
+       Private *priv = 0;
        FS::Path work_dir;
-       bool redirect;
-       IO::Base *cin;
-       IO::Base *cout;
-       IO::Base *cerr;
-       bool running;
-       bool finished;
-       unsigned exit_code;
+       bool redirect = false;
+       IO::Base *cin = 0;
+       IO::Base *cout = 0;
+       IO::Base *cerr = 0;
+       bool running = false;
+       bool finished = false;
+       unsigned exit_code = 0;
 
        static Process *_self;
 
        Process(const Private &);
-       void init();
 public:
        Process();
        ~Process();
index a2160a52c50b1799ce45d87903de94ff2474eaf5..6285d0ef4031e2e1bc29a1a0495b3e67bc5721dc 100644 (file)
@@ -31,11 +31,11 @@ class RefPtr
        template<typename U> friend class WeakPtr;
 
 private:
-       T *data;
-       RefCounts *counts;
+       T *data = 0;
+       RefCounts *counts = 0;
 
 public:
-       RefPtr(): data(0), counts(0) { }
+       RefPtr() { }
        RefPtr(T *d): data(d), counts(data ? new RefCounts : 0) { incref(); }
 private:
        RefPtr(T *d, RefCounts *c): data(d), counts(d ? c : 0) { incref(); }
@@ -102,11 +102,11 @@ class WeakPtr
        template<typename U> friend class WeakPtr;
 
 private:
-       T *data;
-       RefCounts *counts;
+       T *data = 0;
+       RefCounts *counts = 0;
 
 public:
-       WeakPtr(): data(0), counts(0) { }
+       WeakPtr() { }
 private:
        WeakPtr(T *d, RefCounts *c): data(d), counts(d ? c : 0) { incref(); }
 
index 9ab25f2d48306471bcfd63b0439e501ee5f0fc37..4b229450565aca9e637887b4662c7d1810165d76 100644 (file)
@@ -11,7 +11,7 @@ class Semaphore: private NonCopyable
 private:
        struct Private;
 
-       Private *priv;
+       Private *priv = 0;
 
 public:
        Semaphore(unsigned);
index 721e8cfef51f2ff772c304ff9ece65554c3f033a..e03dcb86062f09af9368471cbb21f947aa751cf3 100644 (file)
@@ -8,8 +8,7 @@ namespace Msp {
 
 Thread::Thread(const string &name):
        priv_(new Private),
-       name_(name),
-       state_(PENDING)
+       name_(name)
 { }
 
 Thread::~Thread()
index 6a17912fdc3c03e0d0904aeb768b8a40ee316212..c84fb668a7c494ca47fa965e46ceb587866a0162 100644 (file)
@@ -27,9 +27,9 @@ private:
                JOINED
        };
 
-       Private *priv_;
+       Private *priv_ = 0;
        std::string name_;
-       State state_;
+       State state_ = PENDING;
 
 protected:
        Thread(const std::string & = std::string());
index 81492585a52636d55f3934f07fa5e1da1c5a1ce1..6a4bacf9defddb911244ba44ced8fd82121e6d97 100644 (file)
@@ -14,8 +14,8 @@ struct Semaphore::Private
 {
        Mutex mutex;
        pthread_cond_t cond;
-       unsigned limit;
-       unsigned count;
+       unsigned limit = 1;
+       unsigned count = 0;
 };
 
 
@@ -24,7 +24,6 @@ Semaphore::Semaphore(unsigned limit):
 {
        pthread_cond_init(&priv->cond, 0);
        priv->limit = limit;
-       priv->count = 0;
 }
 
 Semaphore::~Semaphore()
index 5109dbcc11811ac8297f71e3903a1eb8c4f36f36..05a8139c679783000f9e56d65ae6674029931d49 100644 (file)
@@ -50,10 +50,10 @@ private:
                { return false; }
        };
 
-       StoreBase *store;
+       StoreBase *store = 0;
 
 public:
-       Variant(): store(0) { }
+       Variant() { }
        template<typename T>
        Variant(const T &v): store(new Store<typename std::remove_cv<T>::type>(v)) { }
        Variant(const Variant &v): store(v.store ? v.store->clone() : 0) { }
index 3f32ade0c4558478f633e93f02f9e9e29b261024..67cf62fc9c70a8c5a3cefd4f125b5a35cc39d2da 100644 (file)
@@ -13,7 +13,7 @@ class Backtrace
 public:
        struct StackFrame
        {
-               void *address;
+               void *address = 0;
                std::string file;
                std::string symbol;
        };
index 98806ddc72212df5d8ca7e321540fec105afcdcc..4a146744674ffc8973ad5321138fbfb968eb6caa 100644 (file)
@@ -10,7 +10,7 @@ namespace Debug {
 class ErrorReporter: private NonCopyable
 {
 private:
-       ErrorReporter *prev;
+       ErrorReporter *prev = 0;
 
        static ErrorReporter *current;
 
index c82558b01f6e119720e7d119d5c2cf6d2ef36a65..65cc71ced0876d6863f7613d6f99561e6a82244b 100644 (file)
@@ -7,11 +7,6 @@ using namespace std;
 namespace Msp {
 namespace Debug {
 
-Profiler::Profiler():
-       period(0),
-       inner(0)
-{ }
-
 void Profiler::set_period(unsigned p)
 {
        if(p==period)
@@ -96,13 +91,5 @@ const Profiler::ScopeInfo &Profiler::get_scope(const string &sn) const
        return get_item(scopes, sn);
 }
 
-
-Profiler::ScopeInfo::ScopeInfo():
-       calls(0),
-       calls_per_sec(0),
-       hist_pos(0),
-       hist_full(false)
-{ }
-
 } // namespace Debug
 } // namespace Msp
index 521ce959c5de7cae234c04ae8de5861ac3f6b42e..5018c7f2d654100b7a0de87901d1c0708f114eeb 100644 (file)
@@ -37,27 +37,23 @@ public:
        struct ScopeInfo
        {
                Time::TimeStamp first_call;
-               unsigned calls;
+               unsigned calls = 0;
                Time::TimeDelta total_time;
                Time::TimeDelta self_time;
                Time::TimeDelta avg_time;
-               float calls_per_sec;
+               float calls_per_sec = 0;
                std::vector<CallInfo> history;
-               unsigned hist_pos;
-               bool hist_full;
+               unsigned hist_pos = 0;
+               bool hist_full = false;
                std::map<std::string, unsigned> called_from;
-
-               ScopeInfo();
        };
 
 private:
-       unsigned period;
+       unsigned period = 0;
        std::map<std::string, ScopeInfo> scopes;
-       ProfilingScope *inner;
+       ProfilingScope *inner = 0;
 
 public:
-       Profiler();
-
        /** Sets the averaging period for timing data, measured in calls.  Previous
        average timings are cleared. */
        void set_period(unsigned p);
index 4e4294e0269d04346c04e1c364d75f870fb231ee..50b84ff2b3fe7992fcb0e1af51aac3b534a268ed 100644 (file)
@@ -18,7 +18,7 @@ class ProfilingScope: private NonCopyable
 private:
        Profiler &profiler;
        std::string name;
-       ProfilingScope *parent;
+       ProfilingScope *parent = 0;
        Time::TimeStamp entry_time;
        Time::TimeDelta time_spent;
        Time::TimeDelta child_time;
index 5ff5b7818b59f5d6c16b4d5da042eb0ec3e197cc..a1b713b4c0cc1359ad0700efc523718bc745dc2b 100644 (file)
@@ -8,8 +8,7 @@ namespace Msp {
 namespace FS {
 
 FileMonitor::FileMonitor():
-       priv(new Private(*this)),
-       event_disp(0)
+       priv(new Private(*this))
 { }
 
 FileMonitor::~FileMonitor()
@@ -30,7 +29,6 @@ void FileMonitor::add_file(const FS::Path &path)
 {
        MonitoredFile file;
        file.path = path;
-       file.modified = false;
        prepare_file(file);
        files.push_back(file);
 }
index e96aff66637d239b5fd31a996ce544d4eb385bbc..9e72ad2570b05dd9c7d11006ae05962e49edc087 100644 (file)
@@ -17,16 +17,16 @@ private:
        struct MonitoredFile
        {
                FS::Path path;
-               bool modified;
-               int tag;
+               bool modified = false;
+               int tag = -1;
        };
 
 public:
        sigc::signal<void, const FS::Path &> signal_file_modified;
 
 private:
-       Private *priv;
-       IO::EventDispatcher *event_disp;
+       Private *priv = 0;
+       IO::EventDispatcher *event_disp = 0;
        std::vector<MonitoredFile> files;
 
 public:
index a5a5a10a5532133582172da6abcdf93acdf62ea6..adf376f7a0b0db57341370a7bd07d61b643a7c04 100644 (file)
@@ -21,16 +21,6 @@ Path::Path()
 { }
 
 Path::Path(const string &p)
-{
-       init(p);
-}
-
-Path::Path(const char *p)
-{
-       init(p);
-}
-
-void Path::init(const string &p)
 {
        if(p.empty())
                return;
index e0b593caf2099839d2f517deb2a3b2b0e4e89ffb..9cc0dc243e32900bf869dc92df85a1ddea268251 100644 (file)
@@ -72,11 +72,8 @@ private:
 public:
        Path();
        Path(const std::string &);
-       Path(const char *);
-private:
-       void init(const std::string &);
+       Path(const char *p): Path(std::string(p)) { }
 
-public:
        /// Returns the path as a string.
        const std::string &str() const { return path; }
 
index 2269ae1a016fcf5b1857cb499fd4f21a24d62820..ae9f803a9d16f1030da32d1c9e63f14cf7b48356 100644 (file)
@@ -7,20 +7,6 @@ using namespace std;
 namespace Msp {
 namespace FS {
 
-Stat::Private::Private():
-       owner_id(0),
-       group_id(0)
-{ }
-
-
-Stat::Stat():
-       exists(false),
-       type(UNKNOWN),
-       size(0),
-       alloc_size(0),
-       priv(0)
-{ }
-
 Stat::Stat(const Stat &other):
        exists(other.exists),
        type(other.type),
index e2400ed9b5a037b2a4396aa92d0fb92e01009118..00e3eb939dc5000b5d99299a40d8b4bd0e745a3a 100644 (file)
@@ -33,16 +33,16 @@ private:
                std::string group;
        };
 
-       bool exists;
-       FileType type;
-       FileSize size;
-       FileSize alloc_size;
+       bool exists = false;
+       FileType type = UNKNOWN;
+       FileSize size = 0;
+       FileSize alloc_size = 0;
        Time::TimeStamp mtime;
        mutable OwnerInfo owner_info;
-       Private *priv;
+       Private *priv = 0;
 
 public:
-       Stat();
+       Stat() { }
        Stat(const Stat &);
        Stat &operator=(const Stat &);
        ~Stat();
index c5b98cbfe9abe764fe2945ee964daa904ad00d05..e83355ed72981fc33228c0c4c04d48a76d069780 100644 (file)
@@ -16,7 +16,7 @@ class Asset: public Seekable
 private:
        struct Private;
 
-       Private *priv;
+       Private *priv = 0;
 
 public:
        Asset(const std::string &);
index 9c2b40a1f2a9460eee16a34f6e0b08aab245786c..b8c13d2193060f94f957178f8f01052c62593d41 100644 (file)
@@ -6,10 +6,7 @@ using namespace std;
 namespace Msp {
 namespace IO {
 
-Base::Base():
-       mode(M_READ),
-       eof_flag(false),
-       mutex(0)
+Base::Base()
 { }
 
 Base::~Base()
index 7bd5bd9e963a4be383f2407a50fdf8a6f1c07d3e..1a1485efc67d752a6e893d6cdb6dd605f78b362f 100644 (file)
@@ -42,9 +42,9 @@ public:
        sigc::signal<void> signal_deleted;
 
 protected:
-       Mode mode;
-       bool eof_flag;
-       Mutex *mutex;
+       Mode mode = M_READ;
+       bool eof_flag = false;
+       Mutex *mutex = 0;
 
        Base();
 public:
index 77a5f45cef353e2771842f0b197f7cc48d443f35..638e4ec3696a77a71e7f516ccdd0ccf6033abdc3 100644 (file)
@@ -13,8 +13,7 @@ Buffered::Buffered(Base &b, unsigned s):
        buf_size(s),
        buf(new char[buf_size]),
        begin(buf),
-       end(buf),
-       cur_op(M_NONE)
+       end(buf)
 {
        mode = below.get_mode();
        below.signal_flush_required.connect(sigc::mem_fun(this, &Buffered::flush));
index eeae3e4008bb3bc46629c6927323e3570bfa2747..39c8159ff18c7fa091b8f91c4ab898d0bd36b880 100644 (file)
@@ -11,11 +11,11 @@ class Buffered: public Base, public sigc::trackable
 {
 private:
        Base &below;
-       std::size_t buf_size;
-       char *buf;
-       char *begin;
-       char *end;
-       Mode cur_op;
+       std::size_t buf_size = 0;
+       char *buf = 0;
+       char *begin = 0;
+       char *end = 0;
+       Mode cur_op = M_NONE;
 
 public:
        Buffered(Base &, unsigned = 8192);
index 462e8bbd263ee0b962fdeac9176527fed9a87218..714ed065a43b1ddd959dd179cc98a46ca90c34d4 100644 (file)
@@ -3,8 +3,7 @@
 namespace Msp {
 namespace IO {
 
-EventObject::EventObject():
-       events(P_NONE)
+EventObject::EventObject()
 { }
 
 EventObject::~EventObject()
index 88a71c7dbac804db31ac8d22ad56dc4199c455ed..3feb74fa3cf3b66dd83f7ac954451b5c8ee2f1c1 100644 (file)
@@ -25,7 +25,7 @@ public:
        sigc::signal<void, PollEvent> signal_events_changed;
 
 private:
-       PollEvent events;
+       PollEvent events = P_NONE;
 
 protected:
        EventObject();
index 3c01f09ed8605cca3b518762700d4c85421bbfe0..51785b0b5d7010c771b95add2c68b4540e86ef3b 100644 (file)
@@ -25,7 +25,7 @@ private:
        struct Private;
 
        Handle &handle;
-       Private *priv;
+       Private *priv = 0;
 
 public:
        EventReader(Handle &, unsigned);
index be2097e7f248d042c95312185ec40a25e3dca55b..3e06c71de5500e095195102da434dc0dc3aec273 100644 (file)
@@ -12,7 +12,7 @@ public:
        struct Private;
 
 private:
-       Private *priv;
+       Private *priv = 0;
 
 public:
        Handle();
index 616150f0ab72937e40989ae19dcdd401d5a95981..0b2d8f4c1b7f49ec7ccb93222d2bf48915abf3fd 100644 (file)
@@ -8,28 +8,7 @@ using namespace std;
 namespace Msp {
 namespace IO {
 
-Memory::Memory(char *d, size_t s, Mode m)
-{
-       init(d, d+s, m);
-}
-
 Memory::Memory(char *b, char *e, Mode m)
-{
-       init(b, e, m);
-}
-
-Memory::Memory(const char *cd, size_t s)
-{
-       char *d = const_cast<char *>(cd);
-       init(d, d+s, M_READ);
-}
-
-Memory::Memory(const char *b, const char *e)
-{
-       init(const_cast<char *>(b), const_cast<char *>(e), M_READ);
-}
-
-void Memory::init(char *b, char *e, Mode m)
 {
        begin = b;
        end = e;
index 5b9961c9a38728f7357fc1741e379c593589afdd..048656793d47c33a56de5b1142bb5edbb3c2e4ba 100644 (file)
@@ -9,19 +9,16 @@ namespace IO {
 class Memory: public Seekable
 {
 private:
-       char *begin;
-       char *end;
-       char *pos;
+       char *begin = 0;
+       char *end = 0;
+       char *pos = 0;
 
 public:
-       Memory(char *, std::size_t, Mode = M_RDWR);
+       Memory(char *d, std::size_t s, Mode m = M_RDWR): Memory(d, d+s, m) { }
        Memory(char *, char *, Mode = M_RDWR);
-       Memory(const char *, std::size_t);
-       Memory(const char *, const char *);
-private:
-       void init(char *, char *, Mode);
+       Memory(const char *d, std::size_t s): Memory(const_cast<char *>(d), const_cast<char *>(d+s), M_READ) { }
+       Memory(const char *b, const char *e): Memory(const_cast<char *>(b), const_cast<char *>(e), M_READ) { }
 
-public:
        virtual void set_block(bool);
        virtual void set_inherit(bool);
 
index 4ca2f3d9767ea3315d172ba25dd51831afb7f660..4f9b24f8e6340b8111c6a45824b60cecf336216c 100644 (file)
@@ -10,9 +10,7 @@ namespace Msp {
 namespace IO {
 
 Poller::Poller():
-       priv(new Private),
-       events_changed(false),
-       objs_changed(false)
+       priv(new Private)
 { }
 
 Poller::~Poller()
index 0fb1ebc700a86126822464b3ec3c4bdcfd45e5a4..ca0b0b7d88f46ccc6b82e8219e70d3bcbd74a97b 100644 (file)
@@ -36,8 +36,8 @@ class Poller: private NonCopyable
 public:
        struct PolledObject
        {
-               EventObject *object;
-               PollEvent events;
+               EventObject *object = 0;
+               PollEvent events = P_NONE;
 
                PolledObject(EventObject *o, PollEvent e): object(o), events(e) { }
        };
@@ -46,9 +46,9 @@ private:
        struct Private;
 
        std::vector<PolledObject> objects;
-       Private *priv;
-       bool events_changed;
-       bool objs_changed;
+       Private *priv = 0;
+       bool events_changed = false;
+       bool objs_changed = false;
        std::vector<PolledObject> poll_result;
 
 public:
index 4007a5e22f1e83cd690c8e278c4a584b1d431aa4..535deae1184bfdf7900375652e4faf8bede8473d 100644 (file)
@@ -9,9 +9,7 @@ namespace IO {
 Slice::Slice(Seekable &b, SeekOffset s, SeekOffset l):
        below(b),
        start_offset(s),
-       length(l),
-       position(0),
-       sync_position(true)
+       length(l)
 {
        if(s<0 || l<0)
                throw invalid_argument("Slice");
index 8ca4327415ff29f16d19decee872a7f0234185d9..cec1fcf12b0dc0d822f8a837445a096f64236637 100644 (file)
@@ -20,10 +20,10 @@ class Slice: public Seekable, public sigc::trackable
 {
 private:
        Seekable &below;
-       SeekOffset start_offset;
-       SeekOffset length;
-       SeekOffset position;
-       bool sync_position;
+       SeekOffset start_offset = 0;
+       SeekOffset length = 0;
+       SeekOffset position = 0;
+       bool sync_position = true;
 
 public:
        Slice(Seekable &, SeekOffset, SeekOffset);
index fcbc892fdd2d518fffbda590050bb57805e73ae2..afb14639de77c455511853c3a432b4d0f80c1ce0 100644 (file)
@@ -4,8 +4,7 @@ namespace Msp {
 namespace IO {
 
 EventReader::EventReader(Handle &h, unsigned):
-       handle(h),
-       priv(0)
+       handle(h)
 { }
 
 EventReader::~EventReader()
index 82d9e8c2a297a48dbe202eeace2edfbafc035328..74065244bd11444a65b865c35ccbc7d0a9b0f189 100644 (file)
@@ -13,12 +13,12 @@ struct EventReader::Private
 {
        OVERLAPPED overlapped;
        Handle event;
-       unsigned buf_size;
-       char *buffer;
-       unsigned buf_avail;
-       char *buf_next;
-       bool pending;
-       bool eof;
+       unsigned buf_size = 0;
+       char *buffer = 0;
+       unsigned buf_avail = 0;
+       char *buf_next = 0;
+       bool pending = false;
+       bool eof = false;
 };
 
 
@@ -31,10 +31,7 @@ EventReader::EventReader(Handle &h, unsigned size):
        priv->overlapped.hEvent = *priv->event;
        priv->buf_size = size;
        priv->buffer = new char[priv->buf_size];
-       priv->buf_avail = 0;
        priv->buf_next = priv->buffer;
-       priv->pending = false;
-       priv->eof = false;
 }
 
 EventReader::~EventReader()
index 2220bcc46f063372698915a95e1ad1a45d1f74f0..b3cb312ae9721666d5f860d8878d517691684ee3 100644 (file)
@@ -37,16 +37,6 @@ ZlibCompressed::Private::Private()
 }
 
 
-ZlibCompressed::ZlibCompressed(Base &b, unsigned level):
-       below(b)
-{
-       mode = below.get_mode()&M_RDWR;
-       if(mode!=M_READ && mode!=M_WRITE)
-               throw invalid_access(mode);
-
-       init(level);
-}
-
 ZlibCompressed::ZlibCompressed(Base &b, Mode m, unsigned level):
        below(b)
 {
@@ -54,16 +44,7 @@ ZlibCompressed::ZlibCompressed(Base &b, Mode m, unsigned level):
        if(mode!=M_READ && mode!=M_WRITE)
                throw invalid_access(m);
 
-       init(level);
-}
-
-void ZlibCompressed::init(unsigned level)
-{
 #ifdef WITH_ZLIB
-       buffer_size = 1024;
-       in_buffer = 0;
-       out_buffer = 0;
-       stream_end = false;
        priv = new Private;
 
        if(mode==M_WRITE)
index e4ae6e08f852f9b6228f7ff0f4b415d80a08de81..f31bb2385a28a7dc7c40ef4432501ee89cae8661 100644 (file)
@@ -34,26 +34,22 @@ private:
        struct Private;
 
        Base &below;
-       std::size_t buffer_size;
-       unsigned char *in_buffer;
-       unsigned char *out_buffer;
-       bool stream_end;
-       Private *priv;
+       std::size_t buffer_size = 1024;
+       unsigned char *in_buffer = 0;
+       unsigned char *out_buffer = 0;
+       bool stream_end = false;
+       Private *priv = 0;
 
 public:
        /** Creates a zlib de/compression object.  The underlying object must be
        open for reading or writing, not both.  The level parameter determines
        compression quality, ranging from 1 (fastest) to 9 (best compression). */
-       ZlibCompressed(Base &, unsigned level = 9);
+       ZlibCompressed(Base &b, unsigned level = 9): ZlibCompressed(b, b.get_mode()&M_RDWR, level) { }
 
        /** Creates a zlib de/compression object.  Mode must be either read or
        write, and compatible with the underlying object. */
        ZlibCompressed(Base &, Mode, unsigned level = 9);
 
-private:
-       void init(unsigned);
-
-public:
        virtual ~ZlibCompressed();
 
        virtual void set_block(bool);
index 1b893470c6e9462993d10953e36952b4fc08b6d1..efa165784ac2988f674c0c6be5794c3a1a44c63d 100644 (file)
@@ -39,7 +39,7 @@ public:
        class Encoder
        {
        protected:
-               ErrorMode err_mode;
+               ErrorMode err_mode = THROW_ON_ERROR;
 
                Encoder(ErrorMode em): err_mode(em==DEFAULT ? THROW_ON_ERROR : em) { }
        public:
@@ -90,7 +90,7 @@ public:
        class Decoder
        {
        protected:
-               ErrorMode err_mode;
+               ErrorMode err_mode = THROW_ON_ERROR;
 
                Decoder(ErrorMode em): err_mode(em==DEFAULT ? THROW_ON_ERROR : em) { }
        public:
@@ -162,7 +162,7 @@ template<typename C>
 class StandardCodec: public Codec
 {
 private:
-       ErrorMode err_mode;
+       ErrorMode err_mode = THROW_ON_ERROR;
 
 protected:
        StandardCodec(ErrorMode em): err_mode(em==DEFAULT ? THROW_ON_ERROR : em) { }
index 296c1efe1ed479bd930a8b7f768d87b9a970d010..3332922ccda68e81d354ca5f4e25f35bc96f492c 100644 (file)
@@ -80,7 +80,6 @@ void Iso2022Jp::Encoder::transliterate(unichar, string &buf)
 
 Iso2022Jp::Decoder::Decoder(ErrorMode em):
        Codec::Decoder(em),
-       mode(ASCII),
        dec(new Ascii::Decoder)
 { }
 
index aa5c78b9d4de5bf23a2428c1cdffde7013ab0537..dd850144f9d876fef967c10351440b9273437640 100644 (file)
@@ -19,10 +19,10 @@ public:
        class Encoder: public Codec::Encoder
        {
        private:
-               Mode mode;
+               Mode mode = ASCII;
 
        public:
-               Encoder(ErrorMode em = DEFAULT): Codec::Encoder(em), mode(ASCII) { }
+               Encoder(ErrorMode em = DEFAULT): Codec::Encoder(em) { }
 
                virtual void encode_char(unichar, std::string &);
                virtual void sync(std::string &);
@@ -35,8 +35,8 @@ public:
        class Decoder: public Codec::Decoder
        {
        private:
-               Mode mode;
-               Codec::Decoder *dec;
+               Mode mode = ASCII;
+               Codec::Decoder *dec = 0;
 
        public:
                Decoder(ErrorMode = DEFAULT);
index 293d2774304d1c27a41c061f9801e76a50260b22..ee7b6878fb9279def214fd7c3c56b4ad325c4e87 100644 (file)
@@ -40,10 +40,8 @@ public:
 
 struct Kuten
 {
-       unsigned short ku;
-       unsigned short ten;
-
-       Kuten(): ku(0), ten(0) { }
+       unsigned short ku = 0;
+       unsigned short ten = 0;
 
        operator bool() { return ku!=0 && ten!=0; }
 };
index 13d49ad4ed6250e1a9e95ee5084e20f424608796..f8ae093a64e8e67d16a9e9897dd5e3e13063b4a6 100644 (file)
@@ -7,8 +7,7 @@ namespace StringCodec {
 
 Utf16::Encoder::Encoder(ErrorMode em, Endian en):
        Codec::Encoder(em),
-       endian(en==AUTO ? BIG : en),
-       emit_bom(true)
+       endian(en==AUTO ? BIG : en)
 { }
 
 void Utf16::Encoder::encode_char(unichar ch, string &buf)
index 7fecf1efaad4ef7918da7b6ed8aa3f4122b69ef3..1850258a8aaae2857b778865284afc166fc6b234 100644 (file)
@@ -24,8 +24,8 @@ public:
        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);
@@ -38,7 +38,7 @@ public:
        class Decoder: public Codec::Decoder
        {
        private:
-               Endian endian;
+               Endian endian = AUTO;
 
        public:
                Decoder(ErrorMode em = DEFAULT, Endian en = AUTO);
@@ -49,7 +49,7 @@ public:
        };
 
 private:
-       Endian endian;
+       Endian endian = AUTO;
 
 public:
        Utf16(ErrorMode em = DEFAULT, Endian en = AUTO):
index 07484dd61c7fe27d514ee4a325e1d2fe7bbe366d..60703d8a117c1a19d814cc2a2c63cadc2dca7d91 100644 (file)
@@ -91,19 +91,7 @@ void Fmt::parse(const char *s)
 
 Fmt &Fmt::reset()
 {
-       wd = 0;
-       prec = 6;
-       spos = false;
-       fillc = ' ';
-       base = DEC;
-       sbase = false;
-       fmode = AUTOFLT;
-       spoint = false;
-       align = RIGHT;
-       ucase = false;
-       type = STR;
-
-       return *this;
+       return *this = Fmt();
 }
 
 void Fmt::apply(ostream &out) const
index ee84911bcec06fcd0fc34402ef8975133235b3ce..98e7e64dd111582d2532aa21adf7efc28e758183 100644 (file)
@@ -68,22 +68,22 @@ public:
        };
 
 private:
-       unsigned wd;
-       unsigned prec;
-       bool spos;
-       wchar_t fillc;
-       Base base;
-       bool sbase;
-       FloatMode fmode;
-       bool spoint;
-       Align align;
-       bool ucase;
-       Type type;
+       unsigned wd = 0;
+       unsigned prec = 6;
+       bool spos = false;
+       wchar_t fillc = ' ';
+       Base base = DEC;
+       bool sbase = false;
+       FloatMode fmode = AUTOFLT;
+       bool spoint = false;
+       Align align = RIGHT;
+       bool ucase = false;
+       Type type = STR;
 
 public:
-       Fmt() { reset(); }
-       Fmt(const char *f) { reset(); parse(f); }
-       Fmt(const std::string &f) { reset(); parse(f.c_str()); }
+       Fmt() = default;
+       Fmt(const char *f) { parse(f); }
+       Fmt(const std::string &f) { parse(f.c_str()); }
 
 private:
        void parse(const char *);
index 4f54a8515df8e2806cc118e0a4d982b88ff0a5c2..5d580806631f3c4c7fc964d39d30f065896f783f 100644 (file)
@@ -38,11 +38,11 @@ class LexicalConverter
 {
 private:
        Fmt fmt;
-       bool filled;
+       bool filled = false;
        std::string buf;
 
 public:
-       LexicalConverter(const Fmt &f): fmt(f), filled(false) { }
+       LexicalConverter(const Fmt &f): fmt(f) { }
        LexicalConverter(const std::string &s, const Fmt &f): fmt(f), filled(true), buf(s) { }
 
        const Fmt &get_fmt() const { return fmt; }
index c62405614525dd85b32a73361bd78133e03ef29f..915d33556f17cdd8d4f3a23c48e9a3f5b8343054 100644 (file)
@@ -56,7 +56,6 @@ string bad_regex::make_where(const string &e, const string::const_iterator &i)
 
 Regex::Regex(const string &expr)
 {
-       n_groups = 0;
        auto iter = expr.begin();
        code = compile(expr, iter, n_groups, false);
        ++n_groups;
index 094a295cdb77bc230dd0c79254a4459f1567d945..e830c5bbda253cb111e7e3e07199707c8b884e73 100644 (file)
@@ -107,7 +107,7 @@ private:
        };
 
        Code code;
-       unsigned n_groups;
+       unsigned n_groups = 0;
 
 public:
        /** Constructs a new Regex object from a string representation. */
index b79104bad530f9f6846791e97cda7771f9252d37..0858e5a8dfc5cec44afba0d308ca45ef3c8d3206 100644 (file)
@@ -26,13 +26,12 @@ public:
        {
                typedef std::string::size_type size_type;
 
-               bool match;        //< Whether or not this group matched
-               size_type begin;   //< First offset of the match
-               size_type end;     //< One-past-last offset
-               size_type length;  //< Length of the match (end-begin)
-               std::string str;   //< The part of the string that matched
+               bool match = false;  //< Whether or not this group matched
+               size_type begin;     //< First offset of the match
+               size_type end;       //< One-past-last offset
+               size_type length;    //< Length of the match (end-begin)
+               std::string str;     //< The part of the string that matched
 
-               Group(): match(false) { }
                operator bool() const { return match; }
        };
 
index e1abcf7da81aade456c90ce6f438fd61ea2958c7..f61e62e12ae2b3a18abc91fc6dcf9f8c953b06a5 100644 (file)
@@ -45,52 +45,32 @@ namespace Time {
 
 DateTime::DateTime(const TimeStamp &ts)
 {
-       init(ts);
+       add_raw(ts.raw());
 }
 
-DateTime::DateTime(const TimeStamp &ts, const TimeZone &tz)
+DateTime::DateTime(const TimeStamp &ts, const TimeZone &tz):
+       DateTime(ts)
 {
-       init(ts);
        convert_timezone(tz);
 }
 
-DateTime::DateTime(int y, unsigned char m, unsigned char d)
-{
-       init(y, m, d, 0, 0, 0, 0);
-}
-
-DateTime::DateTime(int y, unsigned char m, unsigned char d, unsigned char h, unsigned char n, unsigned char s)
+DateTime::DateTime(int y, unsigned char m, unsigned char d):
+       DateTime(y, m, d, 0, 0, 0, 0)
+{ }
+
+DateTime::DateTime(int y, unsigned char m, unsigned char d, unsigned char h, unsigned char n, unsigned char s):
+       DateTime(y, m, d, h, n, s, 0)
+{ }
+
+DateTime::DateTime(int y, unsigned char m, unsigned char d, unsigned char h, unsigned char n, unsigned char s, unsigned u):
+       year(y),
+       month(m),
+       mday(d),
+       hour(h),
+       minute(n),
+       second(s),
+       usec(u)
 {
-       init(y, m, d, h, n, s, 0);
-}
-
-DateTime::DateTime(int y, unsigned char m, unsigned char d, unsigned char h, unsigned char n, unsigned char s, unsigned u)
-{
-       init(y, m, d, h, n, s, u);
-}
-
-void DateTime::init(const TimeStamp &ts)
-{
-       year = 1970;
-       month = 1;
-       mday = 1;
-       hour = 0;
-       minute = 0;
-       second = 0;
-       usec = 0;
-       add_raw(ts.raw());
-}
-
-void DateTime::init(int y, unsigned char m, unsigned char d, unsigned char h, unsigned char n, unsigned char s, unsigned u)
-{
-       year = y;
-       month = m;
-       mday = d;
-       hour = h;
-       minute = n;
-       second = s;
-       usec = u;
-
        if(usec>=1000000)
                throw out_of_range("DateTime::DateTime usec");
        if(second>=60)
index b7f578cd9f71326ae510c0780c8714f195aa684d..a5d91cf3451d4b547e93698cabd1f191983b4b0f 100644 (file)
@@ -23,13 +23,13 @@ TimeStamp is a better choice.
 class DateTime
 {
 private:
-       int year;
-       unsigned char month;
-       unsigned char mday;
-       unsigned char hour;
-       unsigned char minute;
-       unsigned char second;
-       unsigned usec;
+       int year = 1970;
+       unsigned char month = 1;
+       unsigned char mday = 1;
+       unsigned char hour = 0;
+       unsigned char minute = 0;
+       unsigned char second = 0;
+       unsigned usec = 0;
        TimeZone zone;
 
 public:
@@ -38,11 +38,7 @@ public:
        DateTime(int, unsigned char, unsigned char);
        DateTime(int, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char);
        DateTime(int, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned);
-private:
-       void init(const TimeStamp &);
-       void init(int, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned);
 
-public:
        static DateTime parse_rfc3339(const std::string &);
 
        int get_year() const { return year; }
index 2ce6eeb4e9e42d3d48db4a6d908d0c18c480810c..332683533cad5e3fea5e076360bb50fb2fa1714c 100644 (file)
@@ -15,11 +15,11 @@ Represents a quantity of time, such as five seconds.
 class TimeDelta
 {
 private:
-       RawTime usec;
+       RawTime usec = 0;
 
 public:
        /** Constructs a zero TimeDelta. */
-       TimeDelta(): usec(0) { }
+       TimeDelta() { }
 
        /** Constructs a TimeDelta from a plain number.  The purpose of this is to
        allow serialization together with the raw() function. */
index 9411facc5d08bf667d73373e03eba43d0acd350c..d35d12743ece9cb4ca89906f0fd97a3eff793a2c 100644 (file)
@@ -9,8 +9,7 @@ namespace Msp {
 namespace Time {
 
 Timer::Timer():
-       sem(1),
-       blocking(false)
+       sem(1)
 { }
 
 Timer::~Timer()
index 8bd4d074a70ea569b19074b32e303323143fae81..91acda9d49281373ade15beb162db9f7789c6f99 100644 (file)
@@ -41,7 +41,7 @@ public:
 private:
        struct SlotProxy
        {
-               Slot *slot;
+               Slot *slot = 0;
 
                SlotProxy(Slot *);
                bool operator<(const SlotProxy &) const;
@@ -50,7 +50,7 @@ private:
        std::vector<SlotProxy> slots;
        Semaphore sem;
        Mutex mutex;
-       bool blocking;
+       bool blocking = false;
 
 public:
        Timer();
index 1317b26bc0ba067c7774ef9ecfd6fb7342e2bdff..d16bb06498c957e18ee34fe12ae2e7bdad149033 100644 (file)
@@ -16,12 +16,12 @@ For representing user-specified times, use the DateTime class.
 class TimeStamp
 {
 private:
-       RawTime usec;
+       RawTime usec = 0;
 
 public:
        /** Construct a TimeStamp that represents an arbitarily distant point in the
        past.  It's guaranteed to be less than any valid timestamp. */
-       TimeStamp(): usec(0) { }
+       TimeStamp() { }
 
        /** Constructs a TimeStamp from a plain number.  The purpose of this is to allow
        serialization together with the raw() function. */