]> git.tdb.fi Git - libs/core.git/commitdiff
Mark boolean conversion operators as explicit
authorMikko Rasa <tdb@tdb.fi>
Sun, 31 Oct 2021 13:05:18 +0000 (15:05 +0200)
committerMikko Rasa <tdb@tdb.fi>
Sun, 31 Oct 2021 18:30:30 +0000 (20:30 +0200)
Also turn const void * operators into actual boolean conversions.

source/io/handle.cpp
source/io/handle.h
source/stringcodec/jisx0208.h
source/strings/regmatch.h
source/time/timedelta.h
source/time/timestamp.h

index 693f93f4c1dbf16e052645c416d582b16702e361..53b5a7e4fbf8643a1a2347e4540593f63d72de1c 100644 (file)
@@ -25,9 +25,9 @@ Handle::~Handle()
        delete priv;
 }
 
-Handle::operator const void *() const
+Handle::operator bool() const
 {
-       return priv->handle!=INVALID_HANDLE_VALUE ? this : 0;
+       return priv->handle!=INVALID_HANDLE_VALUE;
 }
 
 
index 3e06c71de5500e095195102da434dc0dc3aec273..561d710e457e77c73e7766f23d5bfd77f9b82310 100644 (file)
@@ -23,10 +23,7 @@ public:
        Private &operator*() { return *priv; }
        const Private &operator*() const { return *priv; }
 
-       /** This is effectively a boolean conversion, but avoids accidental
-       conversion to OS native handles.  Unix-based systems use int and win32 uses
-       void *; const void * is not implicitly convertible to either. */
-       operator const void *() const;
+       explicit operator bool() const;
 };
 
 
index ee7b6878fb9279def214fd7c3c56b4ad325c4e87..39412825078889fb526e0d4a7ec84a796dc5983a 100644 (file)
@@ -43,7 +43,7 @@ struct Kuten
        unsigned short ku = 0;
        unsigned short ten = 0;
 
-       operator bool() { return ku!=0 && ten!=0; }
+       explicit operator bool() { return ku!=0 && ten!=0; }
 };
 
 unichar jisx0208_to_ucs(Kuten);
index 48f65c6df2b2409403762d0a28f067c8c297b07b..6af309ea72185ea91e43706c1ef38538ced51976 100644 (file)
@@ -32,7 +32,7 @@ public:
                size_type length;    //< Length of the match (end-begin)
                std::string str;     //< The part of the string that matched
 
-               operator bool() const { return match; }
+               explicit operator bool() const { return match; }
        };
 
 private:
@@ -65,7 +65,7 @@ public:
        /** Shorthand for the group() function. */
        const Group &operator[](unsigned i) const { return group(i); }
 
-       operator bool() const { return !empty(); }
+       explicit operator bool() const { return !empty(); }
 };
 
 } // namespace Msp
index a3e62f161c33684f13b90444e23b40fda02567f4..1a4274ba3a35c05822ad6f18c43775cf02e592e4 100644 (file)
@@ -54,7 +54,7 @@ public:
        bool operator==(const TimeDelta &t) const { return usec==t.usec; }
        bool operator!=(const TimeDelta &t) const { return usec!=t.usec; }
 
-       operator const void *() const { return usec ? this : 0; }
+       explicit operator bool() const { return usec; }
 };
 
 template<typename T>
index 2a5c4e1b73bb85df7b9dc9bd824cdbdf46bc8632..8068510a6647b00d739fba0d98cf31f5da4bbac8 100644 (file)
@@ -46,7 +46,7 @@ public:
        bool operator==(const TimeStamp &t) const { return usec==t.usec; }
        bool operator!=(const TimeStamp &t) const { return usec!=t.usec; }
 
-       operator const void *() const { return usec>0 ? this : 0; }
+       explicit operator bool() const { return usec>0; }
 
        static TimeStamp from_unixtime(time_t t) { return TimeStamp(t*1000000LL); }
 };