]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Provide a safer version of a "is set" operator and
authorAlex Rousskov <rousskov@measurement-factory.com>
Mon, 7 Jan 2013 17:14:28 +0000 (10:14 -0700)
committerAlex Rousskov <rousskov@measurement-factory.com>
Mon, 7 Jan 2013 17:14:28 +0000 (10:14 -0700)
its explicitly named equivalent.

src/ipc/mem/Page.h

index e7ff8c5667bf61a1604772feb691d115ce17f103..0d2d481bb8d3ea63fd1e5766613814bdec4ab731 100644 (file)
@@ -20,7 +20,12 @@ class PageId
 public:
     PageId(): pool(0), number(0), purpose(maxPurpose) {}
 
-    operator bool() const { return pool && number; }
+    /// true if and only if both critical components have been initialized
+    bool set() const { return pool && number; }
+
+    // safer than bool which would enable silent casts to int
+    typedef const uint32_t PageId::*SaferBool;
+    operator SaferBool() const { return set() ? &PageId::number : NULL; }
 
     uint32_t pool; ///< page pool ID within Squid
     // uint32_t segment; ///< memory segment ID within the pool; unused for now