Compare commits

...

3 Commits

Author SHA1 Message Date
Alex Kremer
4dc923dcc5 chore: Enable clang-tidy modernize-use-nodiscard check (#7015) 2026-04-24 17:19:30 +00:00
Pratik Mankawde
158df5394c fix: Resolve MSVC Debug build failure in JobQueue.h; re-enable _CRTDBG_MAP_ALLOC in CI (#6993)
Signed-off-by: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com>
Co-authored-by: Ed Hennis <ed@ripple.com>
2026-04-24 16:47:16 +00:00
Zhiyuan Wang
a6bd9251d2 docs: Update hybrid offer invariant comment (#7007) 2026-04-24 16:35:10 +00:00
286 changed files with 1507 additions and 1497 deletions

View File

@@ -73,7 +73,7 @@ Checks: "-*,
bugprone-unhandled-self-assignment,
bugprone-unique-ptr-array-mismatch,
bugprone-unsafe-functions,
bugprone-use-after-move, # has issues
bugprone-use-after-move,
bugprone-unused-raii,
bugprone-unused-return-value,
bugprone-unused-local-non-trivial-variable,
@@ -106,6 +106,7 @@ Checks: "-*,
modernize-use-emplace,
modernize-use-equals-default,
modernize-use-equals-delete,
modernize-use-nodiscard,
modernize-use-override,
modernize-use-ranges,
modernize-use-starts-ends-with,

View File

@@ -118,7 +118,7 @@ if(MSVC)
NOMINMAX
# TODO: Resolve these warnings, don't just silence them
_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:Debug>,$<NOT:$<BOOL:${is_ci}>>>:_CRTDBG_MAP_ALLOC>
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:Debug>>:_CRTDBG_MAP_ALLOC>
)
target_link_libraries(common INTERFACE -errorreport:none -machine:X64)
else()

View File

@@ -36,7 +36,7 @@ public:
explicit Section(std::string name = "");
/** Returns the name of this section. */
std::string const&
[[nodiscard]] std::string const&
name() const
{
return name_;
@@ -45,7 +45,7 @@ public:
/** Returns all the lines in the section.
This includes everything.
*/
std::vector<std::string> const&
[[nodiscard]] std::vector<std::string> const&
lines() const
{
return lines_;
@@ -54,7 +54,7 @@ public:
/** Returns all the values in the section.
Values are non-empty lines which are not key/value pairs.
*/
std::vector<std::string> const&
[[nodiscard]] std::vector<std::string> const&
values() const
{
return values_;
@@ -82,7 +82,7 @@ public:
* @return The retrieved value. A section with an empty legacy value returns
an empty string.
*/
std::string
[[nodiscard]] std::string
legacy() const
{
if (lines_.empty())
@@ -117,11 +117,11 @@ public:
}
/** Returns `true` if a key with the given name exists. */
bool
[[nodiscard]] bool
exists(std::string const& name) const;
template <class T = std::string>
std::optional<T>
[[nodiscard]] std::optional<T>
get(std::string const& name) const
{
auto const iter = lookup_.find(name);
@@ -132,7 +132,7 @@ public:
/// Returns a value if present, else another value.
template <class T>
T
[[nodiscard]] T
value_or(std::string const& name, T const& other) const
{
auto const v = get<T>(name);
@@ -141,7 +141,7 @@ public:
// indicates if trailing comments were seen
// during the appending of any lines/values
bool
[[nodiscard]] bool
had_trailing_comments() const
{
return had_trailing_comments_;
@@ -151,42 +151,42 @@ public:
operator<<(std::ostream&, Section const& section);
// Returns `true` if there are no key/value pairs.
bool
[[nodiscard]] bool
empty() const
{
return lookup_.empty();
}
// Returns the number of key/value pairs.
std::size_t
[[nodiscard]] std::size_t
size() const
{
return lookup_.size();
}
// For iteration of key/value pairs.
const_iterator
[[nodiscard]] const_iterator
begin() const
{
return lookup_.cbegin();
}
// For iteration of key/value pairs.
const_iterator
[[nodiscard]] const_iterator
cbegin() const
{
return lookup_.cbegin();
}
// For iteration of key/value pairs.
const_iterator
[[nodiscard]] const_iterator
end() const
{
return lookup_.cend();
}
// For iteration of key/value pairs.
const_iterator
[[nodiscard]] const_iterator
cend() const
{
return lookup_.cend();
@@ -206,7 +206,7 @@ private:
public:
/** Returns `true` if a section with the given name exists. */
bool
[[nodiscard]] bool
exists(std::string const& name) const;
/** Returns the section with the given name.
@@ -216,7 +216,7 @@ public:
Section&
section(std::string const& name);
Section const&
[[nodiscard]] Section const&
section(std::string const& name) const;
Section const&
@@ -264,7 +264,7 @@ public:
* legacy value.
* @return Contents of the legacy value.
*/
std::string
[[nodiscard]] std::string
legacy(std::string const& sectionName) const;
friend std::ostream&
@@ -272,7 +272,7 @@ public:
// indicates if trailing comments were seen
// in any loaded Sections
bool
[[nodiscard]] bool
had_trailing_comments() const
{
return std::ranges::any_of(map_, [](auto s) { return s.second.had_trailing_comments(); });

View File

@@ -101,13 +101,13 @@ public:
}
/** Returns the number of bytes in the buffer. */
std::size_t
[[nodiscard]] std::size_t
size() const noexcept
{
return size_;
}
bool
[[nodiscard]] bool
empty() const noexcept
{
return 0 == size_;
@@ -125,7 +125,7 @@ public:
to a single byte, to facilitate pointer arithmetic.
*/
/** @{ */
std::uint8_t const*
[[nodiscard]] std::uint8_t const*
data() const noexcept
{
return p_.get();
@@ -169,25 +169,25 @@ public:
return alloc(n);
}
const_iterator
[[nodiscard]] const_iterator
begin() const noexcept
{
return p_.get();
}
const_iterator
[[nodiscard]] const_iterator
cbegin() const noexcept
{
return p_.get();
}
const_iterator
[[nodiscard]] const_iterator
end() const noexcept
{
return p_.get() + size_;
}
const_iterator
[[nodiscard]] const_iterator
cend() const noexcept
{
return p_.get() + size_;

View File

@@ -19,7 +19,7 @@ public:
using Entry = std::pair<std::string, int>;
using List = std::vector<Entry>;
List
[[nodiscard]] List
getCounts(int minimumThreshold) const;
public:
@@ -59,19 +59,19 @@ public:
return --count_;
}
int
[[nodiscard]] int
getCount() const noexcept
{
return count_.load();
}
Counter*
[[nodiscard]] Counter*
getNext() const noexcept
{
return next_;
}
std::string const&
[[nodiscard]] std::string const&
getName() const noexcept
{
return name_;

View File

@@ -73,7 +73,7 @@ public:
{
}
constexpr E const&
[[nodiscard]] constexpr E const&
value() const&
{
return val_;
@@ -91,7 +91,7 @@ public:
return std::move(val_);
}
constexpr E const&&
[[nodiscard]] constexpr E const&&
value() const&&
{
return std::move(val_);
@@ -125,13 +125,13 @@ public:
{
}
constexpr bool
[[nodiscard]] constexpr bool
has_value() const
{
return Base::has_value();
}
constexpr T const&
[[nodiscard]] constexpr T const&
value() const
{
return Base::value();
@@ -143,7 +143,7 @@ public:
return Base::value();
}
constexpr E const&
[[nodiscard]] constexpr E const&
error() const
{
return Base::error();
@@ -210,7 +210,7 @@ public:
{
}
constexpr E const&
[[nodiscard]] constexpr E const&
error() const
{
return Base::error();

View File

@@ -159,11 +159,11 @@ public:
reset();
/** Get the raw pointer */
T*
[[nodiscard]] T*
get() const;
/** Return the strong count */
std::size_t
[[nodiscard]] std::size_t
use_count() const;
template <class TT, class... Args>
@@ -181,7 +181,7 @@ public:
private:
/** Return the raw pointer held by this object. */
T*
[[nodiscard]] T*
unsafeGetRawPtr() const;
/** Exchange the current raw pointer held by this object with the given
@@ -260,7 +260,7 @@ public:
lock() const;
/** Return true if the strong count is zero. */
bool
[[nodiscard]] bool
expired() const;
/** Set the pointer to null and decrement the weak count.
@@ -339,7 +339,7 @@ public:
don't lock the weak pointer. Use the `lock` method if that's what's
needed)
*/
SharedIntrusive<T>
[[nodiscard]] SharedIntrusive<T>
getStrong() const;
/** Return true if this is a strong pointer and the strong pointer is
@@ -357,31 +357,31 @@ public:
/** If this is a strong pointer, return the raw pointer. Otherwise
return null.
*/
T*
[[nodiscard]] T*
get() const;
/** If this is a strong pointer, return the strong count. Otherwise
* return 0
*/
std::size_t
[[nodiscard]] std::size_t
use_count() const;
/** Return true if there is a non-zero strong count. */
bool
[[nodiscard]] bool
expired() const;
/** If this is a strong pointer, return the strong pointer. Otherwise
attempt to lock the weak pointer.
*/
SharedIntrusive<T>
[[nodiscard]] SharedIntrusive<T>
lock() const;
/** Return true is this represents a strong pointer. */
bool
[[nodiscard]] bool
isStrong() const;
/** Return true is this represents a weak pointer. */
bool
[[nodiscard]] bool
isWeak() const;
/** If this is a weak pointer, attempt to convert it to a strong
@@ -412,7 +412,7 @@ private:
private:
/** Return the raw pointer held by this object.
*/
T*
[[nodiscard]] T*
unsafeGetRawPtr() const;
enum class RefStrength { strong, weak };

View File

@@ -207,7 +207,7 @@ private:
RefCountPair(CountType s, CountType w) noexcept;
/** Convert back to the packed integer form. */
FieldType
[[nodiscard]] FieldType
combinedValue() const noexcept;
static constexpr CountType maxStrongValue =

View File

@@ -76,7 +76,7 @@ private:
@return `true` if a system file is associated and opened for
writing.
*/
bool
[[nodiscard]] bool
isOpen() const noexcept;
/** Associate a system file with the log.

View File

@@ -44,7 +44,7 @@ public:
return data_;
}
ProtectedDataType const&
[[nodiscard]] ProtectedDataType const&
get() const
{
return data_;

View File

@@ -252,9 +252,9 @@ public:
// Assume unsigned values are... unsigned. i.e. positive
explicit Number(internalrep mantissa, int exponent, normalized);
constexpr rep
[[nodiscard]] constexpr rep
mantissa() const noexcept;
constexpr int
[[nodiscard]] constexpr int
exponent() const noexcept;
constexpr Number
@@ -339,7 +339,7 @@ public:
}
/** Return the sign of the amount */
constexpr int
[[nodiscard]] constexpr int
signum() const noexcept
{
if (negative_)
@@ -347,7 +347,7 @@ public:
return (mantissa_ != 0u) ? 1 : 0;
}
Number
[[nodiscard]] Number
truncate() const noexcept;
friend constexpr bool
@@ -490,13 +490,13 @@ private:
MantissaRange::rep const& minMantissa,
MantissaRange::rep const& maxMantissa);
bool
[[nodiscard]] bool
isnormal() const noexcept;
// Copy the number, but modify the exponent by "exponentDelta". Because the
// mantissa doesn't change, the result will be "mostly" normalized, but the
// exponent could go out of range, so it will be checked.
Number
[[nodiscard]] Number
shiftExponent(int exponentDelta) const;
// Safely convert rep (int64) mantissa to internalrep (uint64). If the rep

View File

@@ -20,7 +20,7 @@ public:
{
}
uint256 const&
[[nodiscard]] uint256 const&
as_uint256() const
{
return hash_;
@@ -30,17 +30,17 @@ public:
{
return hash_;
}
bool
[[nodiscard]] bool
isZero() const
{
return hash_.isZero();
}
bool
[[nodiscard]] bool
isNonZero() const
{
return hash_.isNonZero();
}
int
[[nodiscard]] int
signum() const
{
return hash_.signum();

View File

@@ -49,7 +49,7 @@ public:
/** Return a strong pointer if this is already a strong pointer (i.e. don't
lock the weak pointer. Use the `lock` method if that's what's needed)
*/
std::shared_ptr<T> const&
[[nodiscard]] std::shared_ptr<T> const&
getStrong() const;
/** Return true if this is a strong pointer and the strong pointer is
@@ -67,30 +67,30 @@ public:
/** If this is a strong pointer, return the raw pointer. Otherwise return
null.
*/
T*
[[nodiscard]] T*
get() const;
/** If this is a strong pointer, return the strong count. Otherwise return 0
*/
std::size_t
[[nodiscard]] std::size_t
use_count() const;
/** Return true if there is a non-zero strong count. */
bool
[[nodiscard]] bool
expired() const;
/** If this is a strong pointer, return the strong pointer. Otherwise
attempt to lock the weak pointer.
*/
std::shared_ptr<T>
[[nodiscard]] std::shared_ptr<T>
lock() const;
/** Return true is this represents a strong pointer. */
bool
[[nodiscard]] bool
isStrong() const;
/** Return true is this represents a weak pointer. */
bool
[[nodiscard]] bool
isWeak() const;
/** If this is a weak pointer, attempt to convert it to a strong pointer.

View File

@@ -180,7 +180,7 @@ public:
~SlabAllocator() = default;
/** Returns the size of the memory block this allocator returns. */
constexpr std::size_t
[[nodiscard]] constexpr std::size_t
size() const noexcept
{
return itemSize_;

View File

@@ -74,7 +74,7 @@ public:
@note The return type is guaranteed to be a pointer
to a single byte, to facilitate pointer arithmetic.
*/
std::uint8_t const*
[[nodiscard]] std::uint8_t const*
data() const noexcept
{
return data_;
@@ -123,25 +123,25 @@ public:
size_ -= n;
}
const_iterator
[[nodiscard]] const_iterator
begin() const noexcept
{
return data_;
}
const_iterator
[[nodiscard]] const_iterator
cbegin() const noexcept
{
return data_;
}
const_iterator
[[nodiscard]] const_iterator
end() const noexcept
{
return data_ + size_;
}
const_iterator
[[nodiscard]] const_iterator
cend() const noexcept
{
return data_ + size_;
@@ -158,7 +158,7 @@ public:
@returns The requested subslice, if the request is valid.
@throws std::out_of_range if pos > size()
*/
Slice
[[nodiscard]] Slice
substr(std::size_t pos, std::size_t count = std::numeric_limits<std::size_t>::max()) const
{
if (pos > size())

View File

@@ -222,19 +222,19 @@ private:
{
}
bool
[[nodiscard]] bool
isWeak() const
{
if (!ptr)
return true;
return ptr.isWeak();
}
bool
[[nodiscard]] bool
isCached() const
{
return ptr && ptr.isStrong();
}
bool
[[nodiscard]] bool
isExpired() const
{
return ptr.expired();

View File

@@ -102,7 +102,7 @@ public:
{
return reinterpret_cast<pointer>(data_.data());
}
const_pointer
[[nodiscard]] const_pointer
data() const
{
return reinterpret_cast<const_pointer>(data_.data());
@@ -118,22 +118,22 @@ public:
{
return data() + bytes;
}
const_iterator
[[nodiscard]] const_iterator
begin() const
{
return data();
}
const_iterator
[[nodiscard]] const_iterator
end() const
{
return data() + bytes;
}
const_iterator
[[nodiscard]] const_iterator
cbegin() const
{
return data();
}
const_iterator
[[nodiscard]] const_iterator
cend() const
{
return data() + bytes;
@@ -310,7 +310,7 @@ public:
return fromVoid(from.data());
}
constexpr int
[[nodiscard]] constexpr int
signum() const
{
for (int i = 0; i < WIDTH; i++)
@@ -433,14 +433,14 @@ public:
return ret;
}
base_uint
[[nodiscard]] base_uint
next() const
{
auto ret = *this;
return ++ret;
}
base_uint
[[nodiscard]] base_uint
prev() const
{
auto ret = *this;
@@ -517,12 +517,12 @@ public:
}
// Deprecated.
bool
[[nodiscard]] bool
isZero() const
{
return *this == beast::zero;
}
bool
[[nodiscard]] bool
isNonZero() const
{
return *this != beast::zero;

View File

@@ -49,7 +49,7 @@ public:
return m_ios;
}
boost::asio::io_context const&
[[nodiscard]] boost::asio::io_context const&
get_io_context() const
{
return m_ios;

View File

@@ -63,7 +63,7 @@ struct abstract_clock_wrapper : public abstract_clock<Facade>
using typename abstract_clock<Facade>::duration;
using typename abstract_clock<Facade>::time_point;
time_point
[[nodiscard]] time_point
now() const override
{
return Clock::now();

View File

@@ -32,7 +32,7 @@ public:
{
}
time_point
[[nodiscard]] time_point
now() const override
{
return now_;

View File

@@ -115,7 +115,7 @@ public:
return &m_iter->value;
}
time_point const&
[[nodiscard]] time_point const&
when() const
{
return m_iter->when;
@@ -136,7 +136,7 @@ private:
{
}
Iterator const&
[[nodiscard]] Iterator const&
iterator() const
{
return m_iter;

View File

@@ -186,7 +186,7 @@ private:
return *this;
}
Compare const&
[[nodiscard]] Compare const&
compare() const
{
return *this;
@@ -295,7 +295,7 @@ private:
return KeyValueCompare::compare();
}
Compare const&
[[nodiscard]] Compare const&
compare() const
{
return KeyValueCompare::compare();
@@ -307,7 +307,7 @@ private:
return *this;
}
KeyValueCompare const&
[[nodiscard]] KeyValueCompare const&
key_compare() const
{
return *this;
@@ -319,7 +319,7 @@ private:
return beast::detail::empty_base_optimization<ElementAllocator>::member();
}
ElementAllocator const&
[[nodiscard]] ElementAllocator const&
alloc() const
{
return beast::detail::empty_base_optimization<ElementAllocator>::member();

View File

@@ -149,7 +149,7 @@ private:
return *this;
}
Hash const&
[[nodiscard]] Hash const&
hash_function() const
{
return *this;
@@ -195,7 +195,7 @@ private:
return *this;
}
KeyEqual const&
[[nodiscard]] KeyEqual const&
key_eq() const
{
return *this;
@@ -348,7 +348,7 @@ private:
return *this;
}
ValueHash const&
[[nodiscard]] ValueHash const&
value_hash() const
{
return *this;
@@ -360,7 +360,7 @@ private:
return ValueHash::hash_function();
}
Hash const&
[[nodiscard]] Hash const&
hash_function() const
{
return ValueHash::hash_function();
@@ -372,7 +372,7 @@ private:
return *this;
}
KeyValueEqual const&
[[nodiscard]] KeyValueEqual const&
key_value_equal() const
{
return *this;
@@ -384,7 +384,7 @@ private:
return key_value_equal().key_eq();
}
KeyEqual const&
[[nodiscard]] KeyEqual const&
key_eq() const
{
return key_value_equal().key_eq();
@@ -396,7 +396,7 @@ private:
return beast::detail::empty_base_optimization<ElementAllocator>::member();
}
ElementAllocator const&
[[nodiscard]] ElementAllocator const&
alloc() const
{
return beast::detail::empty_base_optimization<ElementAllocator>::member();
@@ -433,7 +433,7 @@ private:
m_vec.clear();
}
size_type
[[nodiscard]] size_type
max_bucket_count() const
{
return m_vec.max_size();
@@ -445,7 +445,7 @@ private:
return m_max_load_factor;
}
float const&
[[nodiscard]] float const&
max_load_factor() const
{
return m_max_load_factor;

View File

@@ -43,7 +43,7 @@ public:
return *this;
}
T const&
[[nodiscard]] T const&
member() const noexcept
{
return *this;

View File

@@ -128,7 +128,7 @@ public:
}
private:
reference
[[nodiscard]] reference
dereference() const noexcept
{
return static_cast<reference>(*m_node);
@@ -287,14 +287,14 @@ public:
/** Determine if the list is empty.
@return `true` if the list is empty.
*/
bool
[[nodiscard]] bool
empty() const noexcept
{
return size() == 0;
}
/** Returns the number of elements in the list. */
size_type
[[nodiscard]] size_type
size() const noexcept
{
return m_size;
@@ -314,7 +314,7 @@ public:
@invariant The list may not be empty.
@return A const reference to the first element.
*/
const_reference
[[nodiscard]] const_reference
front() const noexcept
{
return element_from(m_head.m_next);
@@ -334,7 +334,7 @@ public:
@invariant The list may not be empty.
@return A const reference to the last element.
*/
const_reference
[[nodiscard]] const_reference
back() const noexcept
{
return element_from(m_tail.m_prev);
@@ -352,7 +352,7 @@ public:
/** Obtain a const iterator to the beginning of the list.
@return A const iterator pointing to the beginning of the list.
*/
const_iterator
[[nodiscard]] const_iterator
begin() const noexcept
{
return const_iterator(m_head.m_next);
@@ -361,7 +361,7 @@ public:
/** Obtain a const iterator to the beginning of the list.
@return A const iterator pointing to the beginning of the list.
*/
const_iterator
[[nodiscard]] const_iterator
cbegin() const noexcept
{
return const_iterator(m_head.m_next);
@@ -379,7 +379,7 @@ public:
/** Obtain a const iterator to the end of the list.
@return A constiterator pointing to the end of the list.
*/
const_iterator
[[nodiscard]] const_iterator
end() const noexcept
{
return const_iterator(&m_tail);
@@ -388,7 +388,7 @@ public:
/** Obtain a const iterator to the end of the list
@return A constiterator pointing to the end of the list.
*/
const_iterator
[[nodiscard]] const_iterator
cend() const noexcept
{
return const_iterator(&m_tail);
@@ -549,7 +549,7 @@ public:
@param element The element to obtain an iterator for.
@return A const iterator to the element.
*/
const_iterator
[[nodiscard]] const_iterator
const_iterator_to(T const& element) const noexcept
{
return const_iterator(static_cast<Node const*>(&element));

View File

@@ -162,7 +162,7 @@ public:
operator=(LockFreeStack const&) = delete;
/** Returns true if the stack is empty. */
bool
[[nodiscard]] bool
empty() const
{
return m_head.load() == &m_end;
@@ -237,25 +237,25 @@ public:
return iterator(&m_end);
}
const_iterator
[[nodiscard]] const_iterator
begin() const
{
return const_iterator(m_head.load());
}
const_iterator
[[nodiscard]] const_iterator
end() const
{
return const_iterator(&m_end);
}
const_iterator
[[nodiscard]] const_iterator
cbegin() const
{
return const_iterator(m_head.load());
}
const_iterator
[[nodiscard]] const_iterator
cend() const
{
return const_iterator(&m_end);

View File

@@ -37,15 +37,15 @@ public:
parse(std::string_view input);
/** Produce a string from semantic version components. */
std::string
[[nodiscard]] std::string
print() const;
bool
[[nodiscard]] bool
isRelease() const noexcept
{
return preReleaseIdentifiers.empty();
}
bool
[[nodiscard]] bool
isPreRelease() const noexcept
{
return !isRelease();

View File

@@ -45,7 +45,7 @@ public:
m_impl->notify(ceil<value_type>(value));
}
std::shared_ptr<EventImpl> const&
[[nodiscard]] std::shared_ptr<EventImpl> const&
impl() const
{
return m_impl;

View File

@@ -108,7 +108,7 @@ public:
}
/** @} */
std::shared_ptr<GaugeImpl> const&
[[nodiscard]] std::shared_ptr<GaugeImpl> const&
impl() const
{
return m_impl;

View File

@@ -14,7 +14,7 @@ public:
using ptr = std::shared_ptr<Group>;
/** Returns the name of this group, for diagnostics. */
virtual std::string const&
[[nodiscard]] virtual std::string const&
name() const = 0;
};

View File

@@ -24,7 +24,7 @@ public:
{
}
std::shared_ptr<HookImpl> const&
[[nodiscard]] std::shared_ptr<HookImpl> const&
impl() const
{
return m_impl;

View File

@@ -63,7 +63,7 @@ public:
}
/** @} */
std::shared_ptr<MeterImpl> const&
[[nodiscard]] std::shared_ptr<MeterImpl> const&
impl() const
{
return m_impl;

View File

@@ -32,25 +32,25 @@ public:
from_string(std::string const& s);
/** Returns a string representing the endpoint. */
std::string
[[nodiscard]] std::string
to_string() const;
/** Returns the port number on the endpoint. */
Port
[[nodiscard]] Port
port() const
{
return m_port;
}
/** Returns a new Endpoint with a different port. */
Endpoint
[[nodiscard]] Endpoint
at_port(Port port) const
{
return Endpoint(m_addr, port);
}
/** Returns the address portion of this endpoint. */
Address const&
[[nodiscard]] Address const&
address() const
{
return m_addr;
@@ -58,22 +58,22 @@ public:
/** Convenience accessors for the address part. */
/** @{ */
bool
[[nodiscard]] bool
is_v4() const
{
return m_addr.is_v4();
}
bool
[[nodiscard]] bool
is_v6() const
{
return m_addr.is_v6();
}
AddressV4
[[nodiscard]] AddressV4
to_v4() const
{
return m_addr.to_v4();
}
AddressV6
[[nodiscard]] AddressV6
to_v6() const
{
return m_addr.to_v6();

View File

@@ -25,7 +25,7 @@ protected:
return m_cont;
}
cont_type const&
[[nodiscard]] cont_type const&
cont() const
{
return m_cont;
@@ -39,14 +39,14 @@ public:
using const_iterator = typename cont_type::const_iterator;
/** Returns `true` if the container is empty. */
bool
[[nodiscard]] bool
empty() const
{
return m_cont.empty();
}
/** Returns the number of items in the container. */
size_type
[[nodiscard]] size_type
size() const
{
return m_cont.size();
@@ -54,25 +54,25 @@ public:
/** Returns forward iterators for traversal. */
/** @{ */
const_iterator
[[nodiscard]] const_iterator
begin() const
{
return m_cont.cbegin();
}
const_iterator
[[nodiscard]] const_iterator
cbegin() const
{
return m_cont.cbegin();
}
const_iterator
[[nodiscard]] const_iterator
end() const
{
return m_cont.cend();
}
const_iterator
[[nodiscard]] const_iterator
cend() const
{
return m_cont.cend();

View File

@@ -21,7 +21,7 @@ public:
recorder() = default;
/** Returns a report with the results of all completed suites. */
results const&
[[nodiscard]] results const&
report() const
{
return m_results;

View File

@@ -41,14 +41,14 @@ private:
tests_t() = default;
/** Returns the total number of test conditions. */
std::size_t
[[nodiscard]] std::size_t
total() const
{
return cont().size();
}
/** Returns the number of failed test conditions. */
std::size_t
[[nodiscard]] std::size_t
failed() const
{
return failed_;
@@ -89,7 +89,7 @@ public:
}
/** Returns the name of this testcase. */
std::string const&
[[nodiscard]] std::string const&
name() const
{
return name_;
@@ -118,21 +118,21 @@ public:
}
/** Returns the name of this suite. */
std::string const&
[[nodiscard]] std::string const&
name() const
{
return name_;
}
/** Returns the total number of test conditions. */
std::size_t
[[nodiscard]] std::size_t
total() const
{
return total_;
}
/** Returns the number of failures. */
std::size_t
[[nodiscard]] std::size_t
failed() const
{
return failed_;
@@ -173,21 +173,21 @@ public:
results() = default;
/** Returns the total number of test cases. */
std::size_t
[[nodiscard]] std::size_t
cases() const
{
return m_cases;
}
/** Returns the total number of test conditions. */
std::size_t
[[nodiscard]] std::size_t
total() const
{
return total_;
}
/** Returns the number of failures. */
std::size_t
[[nodiscard]] std::size_t
failed() const
{
return failed_;

View File

@@ -47,7 +47,7 @@ public:
}
/** Returns the argument string. */
std::string const&
[[nodiscard]] std::string const&
arg() const
{
return arg_;

View File

@@ -57,7 +57,7 @@ private:
// in the event of a failure, if the option to stop is set.
struct abort_exception : public std::exception
{
char const*
[[nodiscard]] char const*
what() const noexcept override
{
return "test suite aborted";

View File

@@ -42,33 +42,33 @@ public:
{
}
std::string const&
[[nodiscard]] std::string const&
name() const
{
return name_;
}
std::string const&
[[nodiscard]] std::string const&
module() const
{
return module_;
}
std::string const&
[[nodiscard]] std::string const&
library() const
{
return library_;
}
/// Returns `true` if this suite only runs manually.
bool
[[nodiscard]] bool
manual() const
{
return manual_;
}
/// Return the canonical suite name as a string.
std::string
[[nodiscard]] std::string
full_name() const
{
return library_ + "." + module_ + "." + name_;

View File

@@ -47,13 +47,13 @@ public:
t_ = std::thread(&Thread::run, this, std::move(b));
}
bool
[[nodiscard]] bool
joinable() const
{
return t_.joinable();
}
std::thread::id
[[nodiscard]] std::thread::id
get_id() const
{
return t_.get_id();

View File

@@ -66,12 +66,12 @@ public:
operator=(Sink const& lhs) = delete;
/** Returns `true` if text at the passed severity produces output. */
virtual bool
[[nodiscard]] virtual bool
active(Severity level) const;
/** Returns `true` if a message is also written to the Output Window
* (MSVC). */
virtual bool
[[nodiscard]] virtual bool
console() const;
/** Set whether messages are also written to the Output Window (MSVC).
@@ -80,7 +80,7 @@ public:
console(bool output);
/** Returns the minimum severity level this sink will report. */
virtual Severity
[[nodiscard]] virtual Severity
threshold() const;
/** Set the minimum severity this sink will report. */
@@ -204,14 +204,14 @@ public:
operator=(Stream const& other) = delete;
/** Returns the Sink that this Stream writes to. */
Sink&
[[nodiscard]] Sink&
sink() const
{
return m_sink;
}
/** Returns the Severity level of messages this Stream reports. */
Severity
[[nodiscard]] Severity
level() const
{
return m_level;
@@ -219,7 +219,7 @@ public:
/** Returns `true` if sink logs anything at this stream's level. */
/** @{ */
bool
[[nodiscard]] bool
active() const
{
return m_sink.active(m_level);
@@ -267,14 +267,14 @@ public:
}
/** Returns the Sink associated with this Journal. */
Sink&
[[nodiscard]] Sink&
sink() const
{
return *m_sink;
}
/** Returns a stream for this sink, with the specified severity level. */
Stream
[[nodiscard]] Stream
stream(Severity level) const
{
return Stream(*m_sink, level);
@@ -284,7 +284,7 @@ public:
For a message to be logged, the severity must be at or above the
sink's severity threshold.
*/
bool
[[nodiscard]] bool
active(Severity level) const
{
return m_sink->active(level);
@@ -292,37 +292,37 @@ public:
/** Severity stream access functions. */
/** @{ */
Stream
[[nodiscard]] Stream
trace() const
{
return {*m_sink, severities::kTrace};
}
Stream
[[nodiscard]] Stream
debug() const
{
return {*m_sink, severities::kDebug};
}
Stream
[[nodiscard]] Stream
info() const
{
return {*m_sink, severities::kInfo};
}
Stream
[[nodiscard]] Stream
warn() const
{
return {*m_sink, severities::kWarning};
}
Stream
[[nodiscard]] Stream
error() const
{
return {*m_sink, severities::kError};
}
Stream
[[nodiscard]] Stream
fatal() const
{
return {*m_sink, severities::kFatal};

View File

@@ -149,7 +149,7 @@ class PropertyStream::Item : public List<Item>::Node
{
public:
explicit Item(Source* source);
Source&
[[nodiscard]] Source&
source() const;
Source*
operator->() const;
@@ -217,7 +217,7 @@ public:
PropertyStream&
stream();
PropertyStream const&
[[nodiscard]] PropertyStream const&
stream() const;
template <typename Value>
@@ -287,7 +287,7 @@ public:
PropertyStream&
stream();
PropertyStream const&
[[nodiscard]] PropertyStream const&
stream() const;
template <typename Value>
@@ -323,7 +323,7 @@ public:
operator=(Source const&) = delete;
/** Returns the name of this source. */
std::string const&
[[nodiscard]] std::string const&
name() const;
/** Add a child source. */

View File

@@ -35,13 +35,13 @@ public:
prefix_ = s;
}
bool
[[nodiscard]] bool
active(beast::severities::Severity level) const override
{
return sink_.active(level);
}
bool
[[nodiscard]] bool
console() const override
{
return sink_.console();
@@ -53,7 +53,7 @@ public:
sink_.console(output);
}
beast::severities::Severity
[[nodiscard]] beast::severities::Severity
threshold() const override
{
return sink_.threshold();

View File

@@ -43,7 +43,7 @@ public:
}
/// Get the native path for the temporary directory
std::string
[[nodiscard]] std::string
path() const
{
return path_.string();
@@ -53,7 +53,7 @@ public:
The file does not need to exist.
*/
std::string
[[nodiscard]] std::string
file(std::string const& name) const
{
return (path_ / name).string();

View File

@@ -41,15 +41,15 @@ public:
with respect to other conditions of the
same type.
*/
virtual Buffer
[[nodiscard]] virtual Buffer
fingerprint() const = 0;
/** Returns the type of this condition. */
virtual Type
[[nodiscard]] virtual Type
type() const = 0;
/** Validates a fulfillment. */
virtual bool
[[nodiscard]] virtual bool
validate(Slice data) const = 0;
/** Calculates the cost associated with this fulfillment. *
@@ -58,7 +58,7 @@ public:
type and properties of the condition and the fulfillment
that the condition is generated from.
*/
virtual std::uint32_t
[[nodiscard]] virtual std::uint32_t
cost() const = 0;
/** Returns the condition associated with the given fulfillment.
@@ -67,7 +67,7 @@ public:
will, if compliant, produce the identical condition for the
same fulfillment.
*/
virtual Condition
[[nodiscard]] virtual Condition
condition() const = 0;
};

View File

@@ -90,13 +90,13 @@ public:
{
}
Type
[[nodiscard]] Type
type() const override
{
return Type::preimageSha256;
}
Buffer
[[nodiscard]] Buffer
fingerprint() const override
{
sha256_hasher h;
@@ -105,19 +105,19 @@ public:
return {d.data(), d.size()};
}
std::uint32_t
[[nodiscard]] std::uint32_t
cost() const override
{
return static_cast<std::uint32_t>(payload_.size());
}
Condition
[[nodiscard]] Condition
condition() const override
{
return {type(), cost(), fingerprint()};
}
bool
[[nodiscard]] bool
validate(Slice) const override
{
// Perhaps counterintuitively, the message isn't

View File

@@ -118,7 +118,7 @@ private:
peers_.insert(peer);
}
HashRouterFlags
[[nodiscard]] HashRouterFlags
getFlags(void) const
{
return flags_;
@@ -138,7 +138,7 @@ private:
}
/** Return seated relay time point if the message has been relayed */
std::optional<Stopwatch::time_point>
[[nodiscard]] std::optional<Stopwatch::time_point>
relayed() const
{
return relayed_;

View File

@@ -98,11 +98,11 @@ public:
LoadMonitor& lm,
std::function<void()> const& job);
JobType
[[nodiscard]] JobType
getType() const;
/** Returns the time when the job was queued. */
clock_type::time_point const&
[[nodiscard]] clock_type::time_point const&
queue_time() const;
void

View File

@@ -7,8 +7,13 @@
#include <xrpl/core/detail/Workers.h>
#include <xrpl/json/json_value.h>
// Include only the specific Boost.Coroutine2 headers actually used here.
// Avoid `boost/coroutine2/all.hpp` because it transitively pulls in
// `boost/context/pooled_fixedsize_stack.hpp`, whose `.malloc()` / `.free()`
// member calls on `boost::pool` collide with MSVC's `_CRTDBG_MAP_ALLOC` macros
// in Debug builds (see cmake/XrplCompiler.cmake).
#include <boost/context/protected_fixedsize_stack.hpp>
#include <boost/coroutine2/all.hpp>
#include <boost/coroutine2/coroutine.hpp>
#include <set>

View File

@@ -54,13 +54,13 @@ public:
JobTypeData&
operator=(JobTypeData const& other) = delete;
std::string
[[nodiscard]] std::string
name() const
{
return info.name();
}
JobType
[[nodiscard]] JobType
type() const
{
return info.type();

View File

@@ -40,37 +40,37 @@ public:
{
}
JobType
[[nodiscard]] JobType
type() const
{
return m_type;
}
std::string const&
[[nodiscard]] std::string const&
name() const
{
return m_name;
}
int
[[nodiscard]] int
limit() const
{
return m_limit;
}
bool
[[nodiscard]] bool
special() const
{
return m_limit == 0;
}
std::chrono::milliseconds
[[nodiscard]] std::chrono::milliseconds
getAverageLatency() const
{
return m_avgLatency;
}
std::chrono::milliseconds
[[nodiscard]] std::chrono::milliseconds
getPeakLatency() const
{
return m_peakLatency;

View File

@@ -113,7 +113,7 @@ public:
return instance().get(jt).name();
}
JobTypeInfo const&
[[nodiscard]] JobTypeInfo const&
get(JobType jt) const
{
Map::const_iterator const iter(m_map.find(jt));
@@ -125,37 +125,37 @@ public:
return m_unknown;
}
JobTypeInfo const&
[[nodiscard]] JobTypeInfo const&
getInvalid() const
{
return m_unknown;
}
Map::size_type
[[nodiscard]] Map::size_type
size() const
{
return m_map.size();
}
const_iterator
[[nodiscard]] const_iterator
begin() const
{
return m_map.cbegin();
}
const_iterator
[[nodiscard]] const_iterator
cbegin() const
{
return m_map.cbegin();
}
const_iterator
[[nodiscard]] const_iterator
end() const
{
return m_map.cend();
}
const_iterator
[[nodiscard]] const_iterator
cend() const
{
return m_map.cend();

View File

@@ -21,15 +21,15 @@ public:
~LoadEvent();
std::string const&
[[nodiscard]] std::string const&
name() const;
// The time spent waiting.
std::chrono::steady_clock::duration
[[nodiscard]] std::chrono::steady_clock::duration
waitTime() const;
// The time spent running.
std::chrono::steady_clock::duration
[[nodiscard]] std::chrono::steady_clock::duration
runTime() const;
void

View File

@@ -26,7 +26,7 @@ public:
*
* @return The network ID this server is configured for
*/
virtual std::uint32_t
[[nodiscard]] virtual std::uint32_t
getNetworkID() const noexcept = 0;
};

View File

@@ -22,7 +22,7 @@ public:
PublicKey nodeId;
std::string description = {}; // NOLINT(readability-redundant-member-init)
auto
[[nodiscard]] auto
toJson() const -> Json::Value;
template <typename Hasher>

View File

@@ -121,7 +121,7 @@ public:
*
* @return Counters Json object
*/
virtual Json::Value
[[nodiscard]] virtual Json::Value
countersJson() const = 0;
/**
@@ -129,7 +129,7 @@ public:
*
* @return Current executing jobs and RPC calls and durations
*/
virtual Json::Value
[[nodiscard]] virtual Json::Value
currentJson() const = 0;
/**

View File

@@ -192,7 +192,7 @@ public:
virtual OpenLedger&
getOpenLedger() = 0;
virtual OpenLedger const&
[[nodiscard]] virtual OpenLedger const&
getOpenLedger() const = 0;
// Transaction and operation services
@@ -219,7 +219,7 @@ public:
getPerfLog() = 0;
// Configuration and state
virtual bool
[[nodiscard]] virtual bool
isStopping() const = 0;
virtual beast::Journal
@@ -231,7 +231,7 @@ public:
virtual Logs&
getLogs() = 0;
virtual std::optional<uint256> const&
[[nodiscard]] virtual std::optional<uint256> const&
getTrapTxID() const = 0;
/** Retrieve the "wallet database" */

View File

@@ -106,7 +106,7 @@ public:
@note This function is not thread-safe.
*/
int
[[nodiscard]] int
getNumberOfThreads() const noexcept;
/** Set the desired number of threads.
@@ -141,7 +141,7 @@ public:
While this function is thread-safe, the value may not stay
accurate for very long. It's mainly for diagnostic purposes.
*/
int
[[nodiscard]] int
numberOfCurrentlyRunningTasks() const noexcept;
//--------------------------------------------------------------------------

View File

@@ -14,7 +14,7 @@ public:
public:
JsonPropertyStream();
Json::Value const&
[[nodiscard]] Json::Value const&
top() const;
protected:

View File

@@ -64,7 +64,7 @@ public:
* their location in the parsed document. An empty string is returned if no
* error occurred during parsing.
*/
std::string
[[nodiscard]] std::string
getFormattedErrorMessages() const;
static constexpr unsigned nest_limit{25};

View File

@@ -53,7 +53,7 @@ public:
return str_;
}
constexpr char const*
[[nodiscard]] constexpr char const*
c_str() const
{
return str_;
@@ -158,11 +158,11 @@ private:
operator<(CZString const& other) const;
bool
operator==(CZString const& other) const;
int
[[nodiscard]] int
index() const;
char const*
[[nodiscard]] char const*
c_str() const;
bool
[[nodiscard]] bool
isStaticString() const;
private:
@@ -223,60 +223,60 @@ public:
void
swap(Value& other) noexcept;
ValueType
[[nodiscard]] ValueType
type() const;
char const*
[[nodiscard]] char const*
asCString() const;
/** Returns the unquoted string value. */
std::string
[[nodiscard]] std::string
asString() const;
Int
[[nodiscard]] Int
asInt() const;
UInt
[[nodiscard]] UInt
asUInt() const;
double
[[nodiscard]] double
asDouble() const;
bool
[[nodiscard]] bool
asBool() const;
/** Correct absolute value from int or unsigned int */
UInt
[[nodiscard]] UInt
asAbsUInt() const;
// TODO: What is the "empty()" method this docstring mentions?
/** isNull() tests to see if this field is null. Don't use this method to
test for emptiness: use empty(). */
bool
[[nodiscard]] bool
isNull() const;
bool
[[nodiscard]] bool
isBool() const;
bool
[[nodiscard]] bool
isInt() const;
bool
[[nodiscard]] bool
isUInt() const;
bool
[[nodiscard]] bool
isIntegral() const;
bool
[[nodiscard]] bool
isDouble() const;
bool
[[nodiscard]] bool
isNumeric() const;
bool
[[nodiscard]] bool
isString() const;
bool
[[nodiscard]] bool
isArray() const;
bool
[[nodiscard]] bool
isArrayOrNull() const;
bool
[[nodiscard]] bool
isObject() const;
bool
[[nodiscard]] bool
isObjectOrNull() const;
bool
[[nodiscard]] bool
isConvertibleTo(ValueType other) const;
/// Number of values in array or object
UInt
[[nodiscard]] UInt
size() const;
/** Returns false if this is an empty array, empty object, empty string,
@@ -304,10 +304,10 @@ public:
operator[](UInt index) const;
/// If the array contains at least index+1 elements, returns the element
/// value, otherwise returns defaultValue.
Value
[[nodiscard]] Value
get(UInt index, Value const& defaultValue) const;
/// Return true if index < size().
bool
[[nodiscard]] bool
isValidIndex(UInt index) const;
/// \brief Append value to array at the end.
///
@@ -355,7 +355,7 @@ public:
Value
get(char const* key, Value const& defaultValue) const;
/// Return the member named key if it exist, defaultValue otherwise.
Value
[[nodiscard]] Value
get(std::string const& key, Value const& defaultValue) const;
/// \brief Remove and return the named member.
@@ -374,10 +374,10 @@ public:
bool
isMember(char const* key) const;
/// Return true if the object has a member named key.
bool
[[nodiscard]] bool
isMember(std::string const& key) const;
/// Return true if the object has a member named key.
bool
[[nodiscard]] bool
isMember(StaticString const& key) const;
/// \brief Return a list of the member names.
@@ -385,15 +385,15 @@ public:
/// If null, return an empty list.
/// \pre type() is objectValue or nullValue
/// \post if type() was nullValue, it remains nullValue
Members
[[nodiscard]] Members
getMemberNames() const;
std::string
[[nodiscard]] std::string
toStyledString() const;
const_iterator
[[nodiscard]] const_iterator
begin() const;
const_iterator
[[nodiscard]] const_iterator
end() const;
iterator
@@ -513,20 +513,20 @@ public:
/// Return either the index or the member name of the referenced value as a
/// Value.
Value
[[nodiscard]] Value
key() const;
/// Return the index of the referenced Value. -1 if it is not an arrayValue.
UInt
[[nodiscard]] UInt
index() const;
/// Return the member name of the referenced Value. "" if it is not an
/// objectValue.
char const*
[[nodiscard]] char const*
memberName() const;
protected:
Value&
[[nodiscard]] Value&
deref() const;
void
@@ -535,10 +535,10 @@ protected:
void
decrement();
difference_type
[[nodiscard]] difference_type
computeDistance(SelfType const& other) const;
bool
[[nodiscard]] bool
isEqual(SelfType const& other) const;
void

View File

@@ -30,47 +30,47 @@ public:
std::shared_ptr<STTx const> const&,
std::shared_ptr<STObject const> const&);
std::shared_ptr<STTx const> const&
[[nodiscard]] std::shared_ptr<STTx const> const&
getTxn() const
{
return mTxn;
}
TxMeta const&
[[nodiscard]] TxMeta const&
getMeta() const
{
return mMeta;
}
boost::container::flat_set<AccountID> const&
[[nodiscard]] boost::container::flat_set<AccountID> const&
getAffected() const
{
return mAffected;
}
TxID
[[nodiscard]] TxID
getTransactionID() const
{
return mTxn->getTransactionID();
}
TxType
[[nodiscard]] TxType
getTxnType() const
{
return mTxn->getTxnType();
}
TER
[[nodiscard]] TER
getResult() const
{
return mMeta.getResultTER();
}
std::uint32_t
[[nodiscard]] std::uint32_t
getTxnSeq() const
{
return mMeta.getIndex();
}
std::string
[[nodiscard]] std::string
getEscMeta() const;
Json::Value const&
[[nodiscard]] Json::Value const&
getJson() const
{
return mJson;

View File

@@ -36,7 +36,7 @@ public:
virtual ~AmendmentTable() = default;
virtual uint256
[[nodiscard]] virtual uint256
find(std::string const& name) const = 0;
virtual bool
@@ -47,9 +47,9 @@ public:
virtual bool
enable(uint256 const& amendment) = 0;
virtual bool
[[nodiscard]] virtual bool
isEnabled(uint256 const& amendment) const = 0;
virtual bool
[[nodiscard]] virtual bool
isSupported(uint256 const& amendment) const = 0;
/**
@@ -58,17 +58,17 @@ public:
*
* @return true if an unsupported feature is enabled on the network
*/
virtual bool
[[nodiscard]] virtual bool
hasUnsupportedEnabled() const = 0;
virtual std::optional<NetClock::time_point>
[[nodiscard]] virtual std::optional<NetClock::time_point>
firstUnsupportedExpected() const = 0;
virtual Json::Value
[[nodiscard]] virtual Json::Value
getJson(bool isAdmin) const = 0;
/** Returns a Json::objectValue. */
virtual Json::Value
[[nodiscard]] virtual Json::Value
getJson(uint256 const& amendment, bool isAdmin) const = 0;
/** Called when a new fully-validated ledger is accepted. */
@@ -87,7 +87,7 @@ public:
/** Called to determine whether the amendment logic needs to process
a new validated ledger. (If it could have changed things.)
*/
virtual bool
[[nodiscard]] virtual bool
needValidatedLedger(LedgerIndex seq) const = 0;
virtual void
@@ -112,14 +112,14 @@ public:
// Called by the consensus code when we need to
// add feature entries to a validation
virtual std::vector<uint256>
[[nodiscard]] virtual std::vector<uint256>
doValidation(std::set<uint256> const& enabled) const = 0;
// The set of amendments to enable in the genesis ledger
// This will return all known, non-vetoed amendments.
// If we ever have two amendments that should not both be
// enabled at the same time, we should ensure one is vetoed.
virtual std::vector<uint256>
[[nodiscard]] virtual std::vector<uint256>
getDesired() const = 0;
// The function below adapts the API callers expect to the

View File

@@ -134,7 +134,7 @@ public:
while transactions applied to the consensus
ledger produce hard failures (and claim a fee).
*/
virtual ApplyFlags
[[nodiscard]] virtual ApplyFlags
flags() const = 0;
/** Prepare to modify the SLE associated with key.

View File

@@ -22,10 +22,10 @@ public:
BookDirs(ReadView const&, Book const&);
const_iterator
[[nodiscard]] const_iterator
begin() const;
const_iterator
[[nodiscard]] const_iterator
end() const;
};

View File

@@ -59,13 +59,13 @@ private:
return !(lhs == rhs);
}
uint256 const&
[[nodiscard]] uint256 const&
getAccount() const
{
return account_;
}
uint256 const&
[[nodiscard]] uint256 const&
getTXID() const
{
return txId_;
@@ -118,30 +118,30 @@ public:
return map_.erase(it);
}
const_iterator
[[nodiscard]] const_iterator
begin() const
{
return map_.begin();
}
const_iterator
[[nodiscard]] const_iterator
end() const
{
return map_.end();
}
size_t
[[nodiscard]] size_t
size() const
{
return map_.size();
}
bool
[[nodiscard]] bool
empty() const
{
return map_.empty();
}
uint256 const&
[[nodiscard]] uint256 const&
key() const
{
return salt_;

View File

@@ -31,10 +31,10 @@ public:
Dir(ReadView const&, Keylet const&);
const_iterator
[[nodiscard]] const_iterator
begin() const;
const_iterator
[[nodiscard]] const_iterator
end() const;
};

View File

@@ -74,10 +74,10 @@ public:
// Get the adjustments for the balance between main and other.
// Returns the debits, credits and the original balance
std::optional<AdjustmentIOU>
[[nodiscard]] std::optional<AdjustmentIOU>
adjustmentsIOU(AccountID const& main, AccountID const& other, Currency const& currency) const;
std::optional<AdjustmentMPT>
[[nodiscard]] std::optional<AdjustmentMPT>
adjustmentsMPT(MPTID const& mptID) const;
void
@@ -104,7 +104,7 @@ public:
// Get the adjusted owner count. Since DeferredCredits is meant to be used
// in payments, and payments only decrease owner counts, return the max
// remembered owner count.
std::optional<std::uint32_t>
[[nodiscard]] std::optional<std::uint32_t>
ownerCount(AccountID const& id) const;
void
@@ -179,15 +179,15 @@ public:
}
/** @} */
STAmount
[[nodiscard]] STAmount
balanceHookIOU(AccountID const& account, AccountID const& issuer, STAmount const& amount)
const override;
STAmount
[[nodiscard]] STAmount
balanceHookMPT(AccountID const& account, MPTIssue const& issue, std::int64_t amount)
const override;
STAmount
[[nodiscard]] STAmount
balanceHookSelfIssueMPT(MPTIssue const& issue, std::int64_t amount) const override;
void
@@ -212,7 +212,7 @@ public:
void
adjustOwnerCountHook(AccountID const& account, std::uint32_t cur, std::uint32_t next) override;
std::uint32_t
[[nodiscard]] std::uint32_t
ownerCountHook(AccountID const& account, std::uint32_t count) const override;
/** Apply changes to base view.
@@ -229,7 +229,7 @@ public:
apply(PaymentSandbox& to);
/** @} */
XRPAmount
[[nodiscard]] XRPAmount
xrpDestroyed() const;
private:

View File

@@ -39,22 +39,22 @@ public:
struct sles_type : detail::ReadViewFwdRange<std::shared_ptr<SLE const>>
{
explicit sles_type(ReadView const& view);
iterator
[[nodiscard]] iterator
begin() const;
iterator
[[nodiscard]] iterator
end() const;
iterator
[[nodiscard]] iterator
upper_bound(key_type const& key) const;
};
struct txs_type : detail::ReadViewFwdRange<tx_type>
{
explicit txs_type(ReadView const& view);
bool
[[nodiscard]] bool
empty() const;
iterator
[[nodiscard]] iterator
begin() const;
iterator
[[nodiscard]] iterator
end() const;
};
@@ -78,33 +78,33 @@ public:
}
/** Returns information about the ledger. */
virtual LedgerHeader const&
[[nodiscard]] virtual LedgerHeader const&
header() const = 0;
/** Returns true if this reflects an open ledger. */
virtual bool
[[nodiscard]] virtual bool
open() const = 0;
/** Returns the close time of the previous ledger. */
NetClock::time_point
[[nodiscard]] NetClock::time_point
parentCloseTime() const
{
return header().parentCloseTime;
}
/** Returns the sequence number of the base ledger. */
LedgerIndex
[[nodiscard]] LedgerIndex
seq() const
{
return header().seq;
}
/** Returns the fees for the base ledger. */
virtual Fees const&
[[nodiscard]] virtual Fees const&
fees() const = 0;
/** Returns the tx processing rules. */
virtual Rules const&
[[nodiscard]] virtual Rules const&
rules() const = 0;
/** Determine if a state item exists.
@@ -114,7 +114,7 @@ public:
@return `true` if a SLE is associated with the
specified key.
*/
virtual bool
[[nodiscard]] virtual bool
exists(Keylet const& k) const = 0;
/** Return the key of the next state item.
@@ -127,7 +127,7 @@ public:
the key returned would be outside the open
interval (key, last).
*/
virtual std::optional<key_type>
[[nodiscard]] virtual std::optional<key_type>
succ(key_type const& key, std::optional<key_type> const& last = std::nullopt) const = 0;
/** Return the state item associated with a key.
@@ -143,7 +143,7 @@ public:
@return `nullptr` if the key is not present or
if the type does not match.
*/
virtual std::shared_ptr<SLE const>
[[nodiscard]] virtual std::shared_ptr<SLE const>
read(Keylet const& k) const = 0;
// Accounts in a payment are not allowed to use assets acquired during that
@@ -151,7 +151,7 @@ public:
// changes that accounts make during a payment. `balanceHookIOU` adjusts
// balances so newly acquired assets are not counted toward the balance.
// This is required to support PaymentSandbox.
virtual STAmount
[[nodiscard]] virtual STAmount
balanceHookIOU(AccountID const& account, AccountID const& issuer, STAmount const& amount) const
{
XRPL_ASSERT(amount.holds<Issue>(), "balanceHookIOU: amount is for Issue");
@@ -161,7 +161,7 @@ public:
// balanceHookMPT adjusts balances so newly acquired assets are not counted
// toward the balance.
virtual STAmount
[[nodiscard]] virtual STAmount
balanceHookMPT(AccountID const& account, MPTIssue const& issue, std::int64_t amount) const
{
return STAmount{issue, amount};
@@ -171,7 +171,7 @@ public:
// funds available to issue, which are originally available funds less
// already self sold MPT amounts (MPT sell offer). This hook is used
// by issuerFundsToSelfIssue() function.
virtual STAmount
[[nodiscard]] virtual STAmount
balanceHookSelfIssueMPT(MPTIssue const& issue, std::int64_t amount) const
{
return STAmount{issue, amount};
@@ -182,30 +182,30 @@ public:
// changes that accounts make during a payment. `ownerCountHook` adjusts the
// ownerCount so it returns the max value of the ownerCount so far.
// This is required to support PaymentSandbox.
virtual std::uint32_t
[[nodiscard]] virtual std::uint32_t
ownerCountHook(AccountID const& account, std::uint32_t count) const
{
return count;
}
// used by the implementation
virtual std::unique_ptr<sles_type::iter_base>
[[nodiscard]] virtual std::unique_ptr<sles_type::iter_base>
slesBegin() const = 0;
// used by the implementation
virtual std::unique_ptr<sles_type::iter_base>
[[nodiscard]] virtual std::unique_ptr<sles_type::iter_base>
slesEnd() const = 0;
// used by the implementation
virtual std::unique_ptr<sles_type::iter_base>
[[nodiscard]] virtual std::unique_ptr<sles_type::iter_base>
slesUpperBound(key_type const& key) const = 0;
// used by the implementation
virtual std::unique_ptr<txs_type::iter_base>
[[nodiscard]] virtual std::unique_ptr<txs_type::iter_base>
txsBegin() const = 0;
// used by the implementation
virtual std::unique_ptr<txs_type::iter_base>
[[nodiscard]] virtual std::unique_ptr<txs_type::iter_base>
txsEnd() const = 0;
/** Returns `true` if a tx exists in the tx map.
@@ -213,7 +213,7 @@ public:
A tx exists in the map if it is part of the
base ledger, or if it is a newly inserted tx.
*/
virtual bool
[[nodiscard]] virtual bool
txExists(key_type const& key) const = 0;
/** Read a transaction from the tx map.
@@ -224,7 +224,7 @@ public:
@return A pair of nullptr if the
key is not found in the tx map.
*/
virtual tx_type
[[nodiscard]] virtual tx_type
txRead(key_type const& key) const = 0;
//
@@ -257,7 +257,7 @@ public:
@return std::nullopt if the item does not exist.
*/
virtual std::optional<digest_type>
[[nodiscard]] virtual std::optional<digest_type>
digest(key_type const& key) const = 0;
};

View File

@@ -54,19 +54,19 @@ public:
bool isDryRun,
beast::Journal j);
bool
[[nodiscard]] bool
exists(ReadView const& base, Keylet const& k) const;
std::optional<key_type>
[[nodiscard]] std::optional<key_type>
succ(ReadView const& base, key_type const& key, std::optional<key_type> const& last) const;
std::shared_ptr<SLE const>
[[nodiscard]] std::shared_ptr<SLE const>
read(ReadView const& base, Keylet const& k) const;
std::shared_ptr<SLE>
peek(ReadView const& base, Keylet const& k);
std::size_t
[[nodiscard]] std::size_t
size() const;
void
@@ -97,7 +97,7 @@ public:
destroyXRP(XRPAmount const& fee);
// For debugging
XRPAmount const&
[[nodiscard]] XRPAmount const&
dropsDestroyed() const
{
return dropsDestroyed_;

View File

@@ -22,51 +22,51 @@ public:
ApplyViewBase(ReadView const* base, ApplyFlags flags);
// ReadView
bool
[[nodiscard]] bool
open() const override;
LedgerHeader const&
[[nodiscard]] LedgerHeader const&
header() const override;
Fees const&
[[nodiscard]] Fees const&
fees() const override;
Rules const&
[[nodiscard]] Rules const&
rules() const override;
bool
[[nodiscard]] bool
exists(Keylet const& k) const override;
std::optional<key_type>
[[nodiscard]] std::optional<key_type>
succ(key_type const& key, std::optional<key_type> const& last = std::nullopt) const override;
std::shared_ptr<SLE const>
[[nodiscard]] std::shared_ptr<SLE const>
read(Keylet const& k) const override;
std::unique_ptr<sles_type::iter_base>
[[nodiscard]] std::unique_ptr<sles_type::iter_base>
slesBegin() const override;
std::unique_ptr<sles_type::iter_base>
[[nodiscard]] std::unique_ptr<sles_type::iter_base>
slesEnd() const override;
std::unique_ptr<sles_type::iter_base>
[[nodiscard]] std::unique_ptr<sles_type::iter_base>
slesUpperBound(uint256 const& key) const override;
std::unique_ptr<txs_type::iter_base>
[[nodiscard]] std::unique_ptr<txs_type::iter_base>
txsBegin() const override;
std::unique_ptr<txs_type::iter_base>
[[nodiscard]] std::unique_ptr<txs_type::iter_base>
txsEnd() const override;
bool
[[nodiscard]] bool
txExists(key_type const& key) const override;
tx_type
[[nodiscard]] tx_type
txRead(key_type const& key) const override;
// ApplyView
ApplyFlags
[[nodiscard]] ApplyFlags
flags() const override;
std::shared_ptr<SLE>

View File

@@ -42,10 +42,10 @@ public:
void
apply(RawView& to) const;
bool
[[nodiscard]] bool
exists(ReadView const& base, Keylet const& k) const;
std::optional<key_type>
[[nodiscard]] std::optional<key_type>
succ(ReadView const& base, key_type const& key, std::optional<key_type> const& last) const;
void
@@ -57,19 +57,19 @@ public:
void
replace(std::shared_ptr<SLE> const& sle);
std::shared_ptr<SLE const>
[[nodiscard]] std::shared_ptr<SLE const>
read(ReadView const& base, Keylet const& k) const;
void
destroyXRP(XRPAmount const& fee);
std::unique_ptr<ReadView::sles_type::iter_base>
[[nodiscard]] std::unique_ptr<ReadView::sles_type::iter_base>
slesBegin(ReadView const& base) const;
std::unique_ptr<ReadView::sles_type::iter_base>
[[nodiscard]] std::unique_ptr<ReadView::sles_type::iter_base>
slesEnd(ReadView const& base) const;
std::unique_ptr<ReadView::sles_type::iter_base>
[[nodiscard]] std::unique_ptr<ReadView::sles_type::iter_base>
slesUpperBound(ReadView const& base, uint256 const& key) const;
private:

View File

@@ -27,16 +27,16 @@ public:
virtual ~ReadViewFwdIter() = default;
virtual std::unique_ptr<ReadViewFwdIter>
[[nodiscard]] virtual std::unique_ptr<ReadViewFwdIter>
copy() const = 0;
virtual bool
[[nodiscard]] virtual bool
equal(ReadViewFwdIter const& impl) const = 0;
virtual void
increment() = 0;
virtual value_type
[[nodiscard]] virtual value_type
dereference() const = 0;
};

View File

@@ -104,7 +104,7 @@ struct LoanState
Number managementFeeDue;
// Interest still due to be paid by the borrower.
Number
[[nodiscard]] Number
interestOutstanding() const
{
XRPL_ASSERT_PARTS(
@@ -266,7 +266,7 @@ struct PaymentComponents
//
// @return The amount of tracked interest included in this payment that
// will be paid to the vault.
Number
[[nodiscard]] Number
trackedInterestPart() const;
};
@@ -340,7 +340,7 @@ struct LoanStateDeltas
/* Calculates the total change across all components.
* @return The sum of principal, interest, and management fee deltas.
*/
Number
[[nodiscard]] Number
total() const
{
return principal + interest + managementFee;

View File

@@ -43,7 +43,7 @@ public:
{
}
bool
[[nodiscard]] bool
isSecure() const
{
return mSecure;

View File

@@ -58,7 +58,7 @@ public:
return ssl_context_;
}
bool
[[nodiscard]] bool
sslVerify() const
{
return verify_;

View File

@@ -34,7 +34,7 @@ public:
/** Get the block size for backends that support it
*/
virtual std::optional<std::size_t>
[[nodiscard]] virtual std::optional<std::size_t>
getBlockSize() const
{
return std::nullopt;
@@ -135,7 +135,7 @@ public:
}
/** Returns the number of file descriptors the backend expects to need. */
virtual int
[[nodiscard]] virtual int
fdRequired() const = 0;
};

View File

@@ -16,7 +16,7 @@ public:
virtual ~Factory() = default;
/** Retrieve the name of this factory. */
virtual std::string
[[nodiscard]] virtual std::string
getName() const = 0;
/** Create an instance of this factory's backend.

View File

@@ -59,15 +59,15 @@ public:
createObject(NodeObjectType type, Blob&& data, uint256 const& hash);
/** Returns the type of this object. */
NodeObjectType
[[nodiscard]] NodeObjectType
getType() const;
/** Returns the hash of the data. */
uint256 const&
[[nodiscard]] uint256 const&
getHash() const;
/** Returns the underlying data. */
Blob const&
[[nodiscard]] Blob const&
getData() const;
private:

View File

@@ -21,7 +21,7 @@ public:
DecodedBlob(void const* key, void const* value, int valueBytes);
/** Determine if the decoding was successful. */
bool
[[nodiscard]] bool
wasOk() const noexcept
{
return m_success;

View File

@@ -68,7 +68,7 @@ public:
{
}
AccountID const&
[[nodiscard]] AccountID const&
getIssuer() const;
template <ValidIssueType TIss>
@@ -80,16 +80,16 @@ public:
get();
template <ValidIssueType TIss>
constexpr bool
[[nodiscard]] constexpr bool
holds() const;
std::string
[[nodiscard]] std::string
getText() const;
constexpr value_type const&
[[nodiscard]] constexpr value_type const&
value() const;
constexpr token_type
[[nodiscard]] constexpr token_type
token() const;
void
@@ -98,7 +98,7 @@ public:
STAmount
operator()(Number const&) const;
constexpr AmtType
[[nodiscard]] constexpr AmtType
getAmountType() const;
// Custom, generic visit implementation
@@ -111,7 +111,7 @@ public:
return detail::visit(issue_, std::forward<Visitors>(visitors)...);
}
constexpr bool
[[nodiscard]] constexpr bool
native() const
{
return visit(
@@ -119,7 +119,7 @@ public:
[&](MPTIssue const&) { return false; });
}
bool
[[nodiscard]] bool
integral() const
{
return visit(
@@ -169,7 +169,7 @@ Asset::holds() const
}
template <ValidIssueType TIss>
constexpr TIss const&
[[nodiscard]] constexpr TIss const&
Asset::get() const
{
if (!std::holds_alternative<TIss>(issue_))

View File

@@ -39,7 +39,7 @@ struct Fees
The reserve is calculated as the reserve base plus
the reserve increment times the number of increments.
*/
XRPAmount
[[nodiscard]] XRPAmount
accountReserve(std::size_t ownerCount) const
{
return reserve + ownerCount * increment;

View File

@@ -71,13 +71,13 @@ public:
operator bool() const noexcept;
/** Return the sign of the amount */
int
[[nodiscard]] int
signum() const noexcept;
exponent_type
[[nodiscard]] exponent_type
exponent() const noexcept;
mantissa_type
[[nodiscard]] mantissa_type
mantissa() const noexcept;
static IOUAmount

View File

@@ -18,7 +18,7 @@ public:
static InnerObjectFormats const&
getInstance();
SOTemplate const*
[[nodiscard]] SOTemplate const*
findSOTemplateBySField(SField const& sField) const;
};

View File

@@ -21,22 +21,22 @@ public:
{
}
AccountID const&
[[nodiscard]] AccountID const&
getIssuer() const
{
return account;
}
std::string
[[nodiscard]] std::string
getText() const;
void
setJson(Json::Value& jv) const;
bool
[[nodiscard]] bool
native() const;
bool
[[nodiscard]] bool
integral() const;
friend constexpr std::weak_ordering

View File

@@ -25,7 +25,7 @@ struct Keylet
}
/** Returns true if the SLE matches the type */
bool
[[nodiscard]] bool
check(STLedgerEntry const&) const;
};

View File

@@ -44,7 +44,7 @@ public:
/** Retrieve the name of the format.
*/
std::string const&
[[nodiscard]] std::string const&
getName() const
{
return name_;
@@ -52,13 +52,13 @@ public:
/** Retrieve the transaction type this format represents.
*/
KeyType
[[nodiscard]] KeyType
getType() const
{
return type_;
}
SOTemplate const&
[[nodiscard]] SOTemplate const&
getSOTemplate() const
{
return soTemplate_;
@@ -96,7 +96,7 @@ public:
@param name The name of the type.
@return The type.
*/
KeyType
[[nodiscard]] KeyType
findTypeByName(std::string const& name) const
{
if (auto const result = findByName(name))
@@ -108,7 +108,7 @@ public:
/** Retrieve a format based on its type.
*/
Item const*
[[nodiscard]] Item const*
findByType(KeyType type) const
{
auto const itr = types_.find(type);
@@ -118,13 +118,13 @@ public:
}
// begin() and end() are provided for testing purposes.
typename std::forward_list<Item>::const_iterator
[[nodiscard]] typename std::forward_list<Item>::const_iterator
begin() const
{
return formats_.begin();
}
typename std::forward_list<Item>::const_iterator
[[nodiscard]] typename std::forward_list<Item>::const_iterator
end() const
{
return formats_.end();
@@ -133,7 +133,7 @@ public:
protected:
/** Retrieve a format based on its name.
*/
Item const*
[[nodiscard]] Item const*
findByName(std::string const& name) const
{
auto const itr = names_.find(name);

View File

@@ -68,14 +68,14 @@ public:
}
/** Return the sign of the amount */
constexpr int
[[nodiscard]] constexpr int
signum() const noexcept;
/** Returns the underlying value. Code SHOULD NOT call this
function unless the type has been abstracted away,
e.g. in a templated function.
*/
constexpr value_type
[[nodiscard]] constexpr value_type
value() const;
static MPTAmount

View File

@@ -26,16 +26,16 @@ public:
return mptID_;
}
AccountID const&
[[nodiscard]] AccountID const&
getIssuer() const;
constexpr MPTID const&
[[nodiscard]] constexpr MPTID const&
getMptID() const
{
return mptID_;
}
std::string
[[nodiscard]] std::string
getText() const;
void

View File

@@ -156,7 +156,7 @@ struct MultiApiJson
{ return visitor(*self, std::forward<decltype(args)>(args)...); };
}
auto
[[nodiscard]] auto
visit() const
{
return [self = this](auto... args)
@@ -176,7 +176,7 @@ struct MultiApiJson
}
template <typename... Args>
auto
[[nodiscard]] auto
visit(Args... args) const -> std::invoke_result_t<visitor_t, MultiApiJson const&, Args...>
requires(sizeof...(args) > 0) &&
requires { visitor(*this, std::forward<decltype(args)>(args)...); }

View File

@@ -24,17 +24,17 @@ public:
}
template <ValidPathAsset T>
constexpr bool
[[nodiscard]] constexpr bool
holds() const;
constexpr bool
[[nodiscard]] constexpr bool
isXRP() const;
template <ValidPathAsset T>
T const&
get() const;
constexpr std::variant<Currency, MPTID> const&
[[nodiscard]] constexpr std::variant<Currency, MPTID> const&
value() const;
// Custom, generic visit implementation

View File

@@ -53,22 +53,22 @@ public:
Permission&
operator=(Permission const&) = delete;
std::optional<std::string>
[[nodiscard]] std::optional<std::string>
getPermissionName(std::uint32_t const value) const;
std::optional<std::uint32_t>
[[nodiscard]] std::optional<std::uint32_t>
getGranularValue(std::string const& name) const;
std::optional<std::string>
[[nodiscard]] std::optional<std::string>
getGranularName(GranularPermissionType const& value) const;
std::optional<TxType>
[[nodiscard]] std::optional<TxType>
getGranularTxType(GranularPermissionType const& gpType) const;
std::optional<std::reference_wrapper<uint256 const>>
[[nodiscard]] std::optional<std::reference_wrapper<uint256 const>>
getTxFeature(TxType txType) const;
bool
[[nodiscard]] bool
isDelegable(std::uint32_t const& permissionValue, Rules const& rules) const;
// for tx level permission, permission value is equal to tx type plus one

View File

@@ -63,7 +63,7 @@ public:
*/
explicit PublicKey(Slice const& slice);
std::uint8_t const*
[[nodiscard]] std::uint8_t const*
data() const noexcept
{
return buf_;
@@ -75,31 +75,31 @@ public:
return size_;
}
const_iterator
[[nodiscard]] const_iterator
begin() const noexcept
{
return buf_;
}
const_iterator
[[nodiscard]] const_iterator
cbegin() const noexcept
{
return buf_;
}
const_iterator
[[nodiscard]] const_iterator
end() const noexcept
{
return buf_ + size_;
}
const_iterator
[[nodiscard]] const_iterator
cend() const noexcept
{
return buf_ + size_;
}
Slice
[[nodiscard]] Slice
slice() const noexcept
{
return {buf_, size_};

View File

@@ -35,7 +35,7 @@ struct TAmounts
}
/** Returns `true` if either quantity is not positive. */
bool
[[nodiscard]] bool
empty() const noexcept
{
return in <= beast::zero || out <= beast::zero;
@@ -145,7 +145,7 @@ public:
/** @} */
/** Returns the quality as STAmount. */
STAmount
[[nodiscard]] STAmount
rate() const
{
return amountFromQuality(m_value);
@@ -154,7 +154,7 @@ public:
/** Returns the quality rounded up to the specified number
of decimal digits.
*/
Quality
[[nodiscard]] Quality
round(int tickSize) const;
/** Returns the scaled amount with in capped.

View File

@@ -53,13 +53,13 @@ public:
/** Return true if the quality function is constant
*/
bool
[[nodiscard]] bool
isConst() const
{
return quality_.has_value();
}
std::optional<Quality> const&
[[nodiscard]] std::optional<Quality> const&
quality() const
{
return quality_;

View File

@@ -58,12 +58,12 @@ private:
std::optional<uint256> const& digest,
STVector256 const& amendments);
std::unordered_set<uint256, beast::uhash<>> const&
[[nodiscard]] std::unordered_set<uint256, beast::uhash<>> const&
presets() const;
public:
/** Returns `true` if a feature is enabled. */
bool
[[nodiscard]] bool
enabled(uint256 const& feature) const;
/** Returns `true` if two rule sets are identical.

View File

@@ -189,19 +189,19 @@ public:
return getField(field_code(type, value));
}
std::string const&
[[nodiscard]] std::string const&
getName() const
{
return fieldName;
}
bool
[[nodiscard]] bool
hasName() const
{
return fieldCode > 0;
}
Json::StaticString const&
[[nodiscard]] Json::StaticString const&
getJsonName() const
{
return jsonName;
@@ -212,19 +212,19 @@ public:
return jsonName;
}
bool
[[nodiscard]] bool
isInvalid() const
{
return fieldCode == -1;
}
bool
[[nodiscard]] bool
isUseful() const
{
return fieldCode > 0;
}
bool
[[nodiscard]] bool
isBinary() const
{
return fieldValue < 256;
@@ -234,18 +234,18 @@ public:
// should be discarded during serialization,like 'hash'.
// You cannot serialize an object's hash inside that object,
// but you can have it in the JSON representation.
bool
[[nodiscard]] bool
isDiscardable() const
{
return fieldValue > 256;
}
int
[[nodiscard]] int
getCode() const
{
return fieldCode;
}
int
[[nodiscard]] int
getNum() const
{
return fieldNum;
@@ -256,13 +256,13 @@ public:
return num;
}
bool
[[nodiscard]] bool
shouldMeta(int c) const
{
return (fieldMeta & c) != 0;
}
bool
[[nodiscard]] bool
shouldInclude(bool withSigningField) const
{
return (fieldValue < 256) && (withSigningField || (signingField == IsSigning::yes));

View File

@@ -63,19 +63,19 @@ public:
init(fieldName);
}
SField const&
[[nodiscard]] SField const&
sField() const
{
return sField_.get();
}
SOEStyle
[[nodiscard]] SOEStyle
style() const
{
return style_;
}
SOETxMPTIssue
[[nodiscard]] SOETxMPTIssue
supportMPT() const
{
return supportMpt_;
@@ -110,42 +110,42 @@ public:
std::initializer_list<SOElement> commonFields = {});
/* Provide for the enumeration of fields */
std::vector<SOElement>::const_iterator
[[nodiscard]] std::vector<SOElement>::const_iterator
begin() const
{
return elements_.cbegin();
}
std::vector<SOElement>::const_iterator
[[nodiscard]] std::vector<SOElement>::const_iterator
cbegin() const
{
return begin();
}
std::vector<SOElement>::const_iterator
[[nodiscard]] std::vector<SOElement>::const_iterator
end() const
{
return elements_.cend();
}
std::vector<SOElement>::const_iterator
[[nodiscard]] std::vector<SOElement>::const_iterator
cend() const
{
return end();
}
/** The number of entries in this template */
std::size_t
[[nodiscard]] std::size_t
size() const
{
return elements_.size();
}
/** Retrieve the position of a named field. */
int
[[nodiscard]] int
getIndex(SField const&) const;
SOEStyle
[[nodiscard]] SOEStyle
style(SField const& sf) const
{
return elements_[indices_[sf.getNum()]].style();

View File

@@ -28,25 +28,25 @@ public:
STAccount(SerialIter& sit, SField const& name);
STAccount(SField const& n, AccountID const& v);
SerializedTypeID
[[nodiscard]] SerializedTypeID
getSType() const override;
std::string
[[nodiscard]] std::string
getText() const override;
void
add(Serializer& s) const override;
bool
[[nodiscard]] bool
isEquivalent(STBase const& t) const override;
bool
[[nodiscard]] bool
isDefault() const override;
STAccount&
operator=(AccountID const& value);
AccountID const&
[[nodiscard]] AccountID const&
value() const noexcept;
void

View File

@@ -138,26 +138,26 @@ public:
//
//--------------------------------------------------------------------------
int
[[nodiscard]] int
exponent() const noexcept;
bool
[[nodiscard]] bool
integral() const noexcept;
bool
[[nodiscard]] bool
native() const noexcept;
template <ValidIssueType TIss>
constexpr bool
[[nodiscard]] constexpr bool
holds() const noexcept;
bool
[[nodiscard]] bool
negative() const noexcept;
std::uint64_t
[[nodiscard]] std::uint64_t
mantissa() const noexcept;
Asset const&
[[nodiscard]] Asset const&
asset() const;
template <ValidIssueType TIss>
@@ -168,20 +168,20 @@ public:
TIss&
get();
AccountID const&
[[nodiscard]] AccountID const&
getIssuer() const;
int
[[nodiscard]] int
signum() const noexcept;
/** Returns a zero value with the same issuer and currency. */
STAmount
[[nodiscard]] STAmount
zeroed() const;
void
setJson(Json::Value&) const;
STAmount const&
[[nodiscard]] STAmount const&
value() const noexcept;
//--------------------------------------------------------------------------
@@ -232,31 +232,31 @@ public:
//
//--------------------------------------------------------------------------
SerializedTypeID
[[nodiscard]] SerializedTypeID
getSType() const override;
std::string
[[nodiscard]] std::string
getFullText() const override;
std::string
[[nodiscard]] std::string
getText() const override;
Json::Value getJson(JsonOptions = JsonOptions::none) const override;
[[nodiscard]] Json::Value getJson(JsonOptions = JsonOptions::none) const override;
void
add(Serializer& s) const override;
bool
[[nodiscard]] bool
isEquivalent(STBase const& t) const override;
bool
[[nodiscard]] bool
isDefault() const override;
XRPAmount
[[nodiscard]] XRPAmount
xrp() const;
IOUAmount
[[nodiscard]] IOUAmount
iou() const;
MPTAmount
[[nodiscard]] MPTAmount
mpt() const;
private:
@@ -462,7 +462,7 @@ STAmount::asset() const
}
template <ValidIssueType TIss>
constexpr TIss const&
[[nodiscard]] constexpr TIss const&
STAmount::get() const
{
return mAsset.get<TIss>();

Some files were not shown because too many files have changed in this diff Show More