diff --git a/td/telegram/SecretChatActor.h b/td/telegram/SecretChatActor.h index afae8dc6d..34224a2da 100644 --- a/td/telegram/SecretChatActor.h +++ b/td/telegram/SecretChatActor.h @@ -496,7 +496,7 @@ class SecretChatActor final : public NetQueryCallback { public: Change() : message_id() { } - explicit operator bool() const { + explicit operator bool() const noexcept { return !data.empty(); } explicit Change(const StateT &state) { diff --git a/td/telegram/files/FileManager.cpp b/td/telegram/files/FileManager.cpp index 4aae985f9..98ae3451a 100644 --- a/td/telegram/files/FileManager.cpp +++ b/td/telegram/files/FileManager.cpp @@ -145,7 +145,7 @@ FileNode *FileNodePtr::get_unsafe() const { return file_manager_->get_file_node_raw(file_id_); } -FileNodePtr::operator bool() const { +FileNodePtr::operator bool() const noexcept { return file_manager_ != nullptr && get_unsafe() != nullptr; } diff --git a/td/telegram/files/FileManager.h b/td/telegram/files/FileManager.h index 1572b609c..fa8008635 100644 --- a/td/telegram/files/FileManager.h +++ b/td/telegram/files/FileManager.h @@ -208,7 +208,7 @@ class FileNodePtr { FileNode &operator*() const; FileNode *get() const; FullRemoteFileLocation *get_remote() const; - explicit operator bool() const; + explicit operator bool() const noexcept; private: FileId file_id_; @@ -229,7 +229,7 @@ class ConstFileNodePtr { return file_node_ptr_.operator*(); } - explicit operator bool() const { + explicit operator bool() const noexcept { return static_cast(file_node_ptr_); } const FullRemoteFileLocation *get_remote() const { diff --git a/td/telegram/net/NetQueryCounter.h b/td/telegram/net/NetQueryCounter.h index a6abc533c..744245b0e 100644 --- a/td/telegram/net/NetQueryCounter.h +++ b/td/telegram/net/NetQueryCounter.h @@ -24,7 +24,7 @@ class NetQueryCounter { counter->fetch_add(1, std::memory_order_relaxed); } - explicit operator bool() const { + explicit operator bool() const noexcept { return static_cast(ptr_); } diff --git a/tdnet/td/net/SslStream.h b/tdnet/td/net/SslStream.h index cbdbe5783..4af0da30e 100644 --- a/tdnet/td/net/SslStream.h +++ b/tdnet/td/net/SslStream.h @@ -34,7 +34,7 @@ class SslStream { size_t flow_read(MutableSlice slice); size_t flow_write(Slice slice); - explicit operator bool() const { + explicit operator bool() const noexcept { return static_cast(impl_); } diff --git a/tdutils/td/utils/CancellationToken.h b/tdutils/td/utils/CancellationToken.h index 729a94621..19f280655 100644 --- a/tdutils/td/utils/CancellationToken.h +++ b/tdutils/td/utils/CancellationToken.h @@ -19,7 +19,7 @@ struct RawCancellationToken { class CancellationToken { public: - explicit operator bool() const { + explicit operator bool() const noexcept { // empty CancellationToken is never canceled if (!token_) { return false; diff --git a/tdutils/td/utils/FlatHashMapChunks.h b/tdutils/td/utils/FlatHashMapChunks.h index 70fc36bac..86aaa49f3 100644 --- a/tdutils/td/utils/FlatHashMapChunks.h +++ b/tdutils/td/utils/FlatHashMapChunks.h @@ -36,7 +36,7 @@ namespace td { template struct MaskIterator { uint64 mask; - explicit operator bool() const { + explicit operator bool() const noexcept { return mask != 0; } int pos() const { diff --git a/tdutils/td/utils/MpscLinkQueue.h b/tdutils/td/utils/MpscLinkQueue.h index de2bff9f4..a1b05c279 100644 --- a/tdutils/td/utils/MpscLinkQueue.h +++ b/tdutils/td/utils/MpscLinkQueue.h @@ -158,7 +158,7 @@ class MpscLinkQueueUniquePtrNode { return MpscLinkQueueUniquePtrNode(unique_ptr(Value::from_mpsc_link_queue_node(node))); } - explicit operator bool() { + explicit operator bool() const noexcept { return ptr_ != nullptr; } diff --git a/tdutils/td/utils/Promise.h b/tdutils/td/utils/Promise.h index 1ba653094..4e83045d6 100644 --- a/tdutils/td/utils/Promise.h +++ b/tdutils/td/utils/Promise.h @@ -245,7 +245,7 @@ class Promise { Promise(F &&f) : promise_(detail::promise_interface_ptr(std::forward(f))) { } - explicit operator bool() { + explicit operator bool() const noexcept { return static_cast(promise_); } diff --git a/tdutils/td/utils/SharedObjectPool.h b/tdutils/td/utils/SharedObjectPool.h index 36e2c6cca..850c14aa2 100644 --- a/tdutils/td/utils/SharedObjectPool.h +++ b/tdutils/td/utils/SharedObjectPool.h @@ -123,10 +123,10 @@ class SharedPtr { other.raw_ = nullptr; return *this; } - bool empty() const { + bool empty() const noexcept { return raw_ == nullptr; } - explicit operator bool() const { + explicit operator bool() const noexcept { return !empty(); } uint64 use_cnt() const { @@ -255,7 +255,7 @@ class SharedObjectPool { Raw *get() const { return raw_; } - explicit operator bool() const { + explicit operator bool() noexcept { return raw_ != nullptr; } diff --git a/tdutils/td/utils/Time.h b/tdutils/td/utils/Time.h index bf1dce6e1..4149c93d9 100644 --- a/tdutils/td/utils/Time.h +++ b/tdutils/td/utils/Time.h @@ -69,7 +69,7 @@ class Timestamp { return is_in_past(now_cached()); } - explicit operator bool() const { + explicit operator bool() const noexcept { return at_ > 0; } diff --git a/tdutils/td/utils/optional.h b/tdutils/td/utils/optional.h index 228ceee58..579127f62 100644 --- a/tdutils/td/utils/optional.h +++ b/tdutils/td/utils/optional.h @@ -46,7 +46,7 @@ class optional { optional &operator=(optional &&other) = default; ~optional() = default; - explicit operator bool() const { + explicit operator bool() const noexcept { return impl_.is_ok(); } T &value() { diff --git a/tdutils/td/utils/port/detail/NativeFd.cpp b/tdutils/td/utils/port/detail/NativeFd.cpp index 0de8c9c1c..7a492857e 100644 --- a/tdutils/td/utils/port/detail/NativeFd.cpp +++ b/tdutils/td/utils/port/detail/NativeFd.cpp @@ -156,7 +156,7 @@ NativeFd::~NativeFd() { close(); } -NativeFd::operator bool() const { +NativeFd::operator bool() const noexcept { return fd_ != empty_fd(); } diff --git a/tdutils/td/utils/port/detail/NativeFd.h b/tdutils/td/utils/port/detail/NativeFd.h index 690590fe3..ac4bddccf 100644 --- a/tdutils/td/utils/port/detail/NativeFd.h +++ b/tdutils/td/utils/port/detail/NativeFd.h @@ -38,7 +38,7 @@ class NativeFd { NativeFd &operator=(NativeFd &&other) noexcept; ~NativeFd(); - explicit operator bool() const; + explicit operator bool() const noexcept; Fd fd() const; Socket socket() const;