From 0e4a41d08b742f799c7a2ea8224bbd87c214b715 Mon Sep 17 00:00:00 2001 From: Christopher Dykes Date: Tue, 7 Feb 2017 11:27:44 -0800 Subject: [PATCH] Make a few coersions to bool explicit Summary: MSVC has warning 4800 which is triggered on implicit coercions to `bool` when not in use as the condition to a control-flow statement. Reviewed By: yfeldblum Differential Revision: D4518465 fbshipit-source-id: 858ab9e68215a2a667cb3ea55daf51b74368174d --- folly/CpuId.h | 2 +- folly/FormatArg.h | 2 +- folly/dynamic-inl.h | 32 +++++++++++++++++++++++--------- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/folly/CpuId.h b/folly/CpuId.h index 24d4d97e..5e06513c 100644 --- a/folly/CpuId.h +++ b/folly/CpuId.h @@ -99,7 +99,7 @@ class CpuId { #define X(name, r, bit) \ FOLLY_ALWAYS_INLINE bool name() const { \ - return (r) & (1U << bit); \ + return ((r) & (1U << bit)) != 0; \ } // cpuid(1): Processor Info and Feature Bits. diff --git a/folly/FormatArg.h b/folly/FormatArg.h index 5257285c..48311e3d 100644 --- a/folly/FormatArg.h +++ b/folly/FormatArg.h @@ -244,7 +244,7 @@ inline StringPiece FormatArg::doSplitKey() { if (e[-1] == ']') { --e; p = static_cast(memchr(b, '[', size_t(e - b))); - enforce(p, "unmatched ']'"); + enforce(p != nullptr, "unmatched ']'"); } else { p = static_cast(memchr(b, '.', size_t(e - b))); } diff --git a/folly/dynamic-inl.h b/folly/dynamic-inl.h index 984b7a4c..41352ad0 100644 --- a/folly/dynamic-inl.h +++ b/folly/dynamic-inl.h @@ -342,15 +342,29 @@ inline dynamic::IterableProxy dynamic::items() } inline bool dynamic::isString() const { - return get_nothrow(); -} -inline bool dynamic::isObject() const { return get_nothrow(); } -inline bool dynamic::isBool() const { return get_nothrow(); } -inline bool dynamic::isArray() const { return get_nothrow(); } -inline bool dynamic::isDouble() const { return get_nothrow(); } -inline bool dynamic::isInt() const { return get_nothrow(); } -inline bool dynamic::isNull() const { return get_nothrow(); } -inline bool dynamic::isNumber() const { return isInt() || isDouble(); } + return get_nothrow() != nullptr; +} +inline bool dynamic::isObject() const { + return get_nothrow() != nullptr; +} +inline bool dynamic::isBool() const { + return get_nothrow() != nullptr; +} +inline bool dynamic::isArray() const { + return get_nothrow() != nullptr; +} +inline bool dynamic::isDouble() const { + return get_nothrow() != nullptr; +} +inline bool dynamic::isInt() const { + return get_nothrow() != nullptr; +} +inline bool dynamic::isNull() const { + return get_nothrow() != nullptr; +} +inline bool dynamic::isNumber() const { + return isInt() || isDouble(); +} inline dynamic::Type dynamic::type() const { return type_; -- 2.34.1