mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
merge bitcoin#20499: Remove obsolete NODISCARD ifdef forest. Use [[nodiscard]] (C++17)
------------- BEGIN SCRIPT --------------- gsed -i "s/NODISCARD/[[nodiscard]]/g" $(git grep -l "NODISCARD" ":(exclude)src/bench/nanobench.h" ":(exclude)src/attributes.h") ------------- END SCRIPT ---------------
This commit is contained in:
parent
ef4dfa8524
commit
f2f1843f0c
@ -6,19 +6,6 @@
|
|||||||
#ifndef BITCOIN_ATTRIBUTES_H
|
#ifndef BITCOIN_ATTRIBUTES_H
|
||||||
#define BITCOIN_ATTRIBUTES_H
|
#define BITCOIN_ATTRIBUTES_H
|
||||||
|
|
||||||
#if defined(__has_cpp_attribute)
|
|
||||||
# if __has_cpp_attribute(nodiscard)
|
|
||||||
# define NODISCARD [[nodiscard]]
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
#ifndef NODISCARD
|
|
||||||
# if defined(_MSC_VER) && _MSC_VER >= 1700
|
|
||||||
# define NODISCARD _Check_return_
|
|
||||||
# else
|
|
||||||
# define NODISCARD __attribute__((warn_unused_result))
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__clang__)
|
#if defined(__clang__)
|
||||||
# if __has_attribute(lifetimebound)
|
# if __has_attribute(lifetimebound)
|
||||||
# define LIFETIMEBOUND [[clang::lifetimebound]]
|
# define LIFETIMEBOUND [[clang::lifetimebound]]
|
||||||
|
@ -35,13 +35,13 @@ std::string EncodeBase58(const std::vector<unsigned char>& vch);
|
|||||||
* return true if decoding is successful.
|
* return true if decoding is successful.
|
||||||
* psz cannot be nullptr.
|
* psz cannot be nullptr.
|
||||||
*/
|
*/
|
||||||
NODISCARD bool DecodeBase58(const char* psz, std::vector<unsigned char>& vchRet);
|
[[nodiscard]] bool DecodeBase58(const char* psz, std::vector<unsigned char>& vchRet);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decode a base58-encoded string (str) into a byte vector (vchRet).
|
* Decode a base58-encoded string (str) into a byte vector (vchRet).
|
||||||
* return true if decoding is successful.
|
* return true if decoding is successful.
|
||||||
*/
|
*/
|
||||||
NODISCARD bool DecodeBase58(const std::string& str, std::vector<unsigned char>& vchRet);
|
[[nodiscard]] bool DecodeBase58(const std::string& str, std::vector<unsigned char>& vchRet);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Encode a byte vector into a base58-encoded string, including checksum
|
* Encode a byte vector into a base58-encoded string, including checksum
|
||||||
@ -52,12 +52,12 @@ std::string EncodeBase58Check(const std::vector<unsigned char>& vchIn);
|
|||||||
* Decode a base58-encoded string (psz) that includes a checksum into a byte
|
* Decode a base58-encoded string (psz) that includes a checksum into a byte
|
||||||
* vector (vchRet), return true if decoding is successful
|
* vector (vchRet), return true if decoding is successful
|
||||||
*/
|
*/
|
||||||
NODISCARD bool DecodeBase58Check(const char* psz, std::vector<unsigned char>& vchRet);
|
[[nodiscard]] bool DecodeBase58Check(const char* psz, std::vector<unsigned char>& vchRet);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decode a base58-encoded string (str) that includes a checksum into a byte
|
* Decode a base58-encoded string (str) that includes a checksum into a byte
|
||||||
* vector (vchRet), return true if decoding is successful
|
* vector (vchRet), return true if decoding is successful
|
||||||
*/
|
*/
|
||||||
NODISCARD bool DecodeBase58Check(const std::string& str, std::vector<unsigned char>& vchRet);
|
[[nodiscard]] bool DecodeBase58Check(const std::string& str, std::vector<unsigned char>& vchRet);
|
||||||
|
|
||||||
#endif // BITCOIN_BASE58_H
|
#endif // BITCOIN_BASE58_H
|
||||||
|
@ -23,8 +23,8 @@ struct CSpentIndexTxInfo;
|
|||||||
// core_read.cpp
|
// core_read.cpp
|
||||||
CScript ParseScript(const std::string& s);
|
CScript ParseScript(const std::string& s);
|
||||||
std::string ScriptToAsmStr(const CScript& script, const bool fAttemptSighashDecode = false);
|
std::string ScriptToAsmStr(const CScript& script, const bool fAttemptSighashDecode = false);
|
||||||
NODISCARD bool DecodeHexTx(CMutableTransaction& tx, const std::string& strHexTx);
|
[[nodiscard]] bool DecodeHexTx(CMutableTransaction& tx, const std::string& strHexTx);
|
||||||
NODISCARD bool DecodeHexBlk(CBlock&, const std::string& strHexBlk);
|
[[nodiscard]] bool DecodeHexBlk(CBlock&, const std::string& strHexBlk);
|
||||||
uint256 ParseHashStr(const std::string&, const std::string& strName);
|
uint256 ParseHashStr(const std::string&, const std::string& strName);
|
||||||
std::vector<unsigned char> ParseHexUV(const UniValue& v, const std::string& strName);
|
std::vector<unsigned char> ParseHexUV(const UniValue& v, const std::string& strName);
|
||||||
|
|
||||||
|
@ -508,7 +508,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
NODISCARD bool AddUniqueProperty(const CDeterministicMNCPtr& dmn, const T& v)
|
[[nodiscard]] bool AddUniqueProperty(const CDeterministicMNCPtr& dmn, const T& v)
|
||||||
{
|
{
|
||||||
static const T nullValue;
|
static const T nullValue;
|
||||||
if (v == nullValue) {
|
if (v == nullValue) {
|
||||||
@ -528,7 +528,7 @@ private:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
template <typename T>
|
template <typename T>
|
||||||
NODISCARD bool DeleteUniqueProperty(const CDeterministicMNCPtr& dmn, const T& oldValue)
|
[[nodiscard]] bool DeleteUniqueProperty(const CDeterministicMNCPtr& dmn, const T& oldValue)
|
||||||
{
|
{
|
||||||
static const T nullValue;
|
static const T nullValue;
|
||||||
if (oldValue == nullValue) {
|
if (oldValue == nullValue) {
|
||||||
@ -548,7 +548,7 @@ private:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
template <typename T>
|
template <typename T>
|
||||||
NODISCARD bool UpdateUniqueProperty(const CDeterministicMNCPtr& dmn, const T& oldValue, const T& newValue)
|
[[nodiscard]] bool UpdateUniqueProperty(const CDeterministicMNCPtr& dmn, const T& oldValue, const T& newValue)
|
||||||
{
|
{
|
||||||
if (oldValue == newValue) {
|
if (oldValue == newValue) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
* JSON but use AmountFromValue and ValueFromAmount for that.
|
* JSON but use AmountFromValue and ValueFromAmount for that.
|
||||||
*/
|
*/
|
||||||
std::string FormatMoney(const CAmount& n);
|
std::string FormatMoney(const CAmount& n);
|
||||||
NODISCARD bool ParseMoney(const std::string& str, CAmount& nRet);
|
[[nodiscard]] bool ParseMoney(const std::string& str, CAmount& nRet);
|
||||||
NODISCARD bool ParseMoney(const char* pszIn, CAmount& nRet);
|
[[nodiscard]] bool ParseMoney(const char* pszIn, CAmount& nRet);
|
||||||
|
|
||||||
#endif // BITCOIN_UTIL_MONEYSTR_H
|
#endif // BITCOIN_UTIL_MONEYSTR_H
|
||||||
|
@ -266,7 +266,7 @@ std::string DecodeBase32(const std::string& str, bool* pf_invalid)
|
|||||||
return std::string((const char*)vchRet.data(), vchRet.size());
|
return std::string((const char*)vchRet.data(), vchRet.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
NODISCARD static bool ParsePrechecks(const std::string& str)
|
[[nodiscard]] static bool ParsePrechecks(const std::string& str)
|
||||||
{
|
{
|
||||||
if (str.empty()) // No empty string allowed
|
if (str.empty()) // No empty string allowed
|
||||||
return false;
|
return false;
|
||||||
|
@ -92,42 +92,42 @@ constexpr bool IsDigit(char c)
|
|||||||
* @returns true if the entire string could be parsed as valid integer,
|
* @returns true if the entire string could be parsed as valid integer,
|
||||||
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
||||||
*/
|
*/
|
||||||
NODISCARD bool ParseInt32(const std::string& str, int32_t *out);
|
[[nodiscard]] bool ParseInt32(const std::string& str, int32_t *out);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert string to signed 64-bit integer with strict parse error feedback.
|
* Convert string to signed 64-bit integer with strict parse error feedback.
|
||||||
* @returns true if the entire string could be parsed as valid integer,
|
* @returns true if the entire string could be parsed as valid integer,
|
||||||
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
||||||
*/
|
*/
|
||||||
NODISCARD bool ParseInt64(const std::string& str, int64_t *out);
|
[[nodiscard]] bool ParseInt64(const std::string& str, int64_t *out);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert decimal string to unsigned 8-bit integer with strict parse error feedback.
|
* Convert decimal string to unsigned 8-bit integer with strict parse error feedback.
|
||||||
* @returns true if the entire string could be parsed as valid integer,
|
* @returns true if the entire string could be parsed as valid integer,
|
||||||
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
||||||
*/
|
*/
|
||||||
NODISCARD bool ParseUInt8(const std::string& str, uint8_t *out);
|
[[nodiscard]] bool ParseUInt8(const std::string& str, uint8_t *out);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert decimal string to unsigned 32-bit integer with strict parse error feedback.
|
* Convert decimal string to unsigned 32-bit integer with strict parse error feedback.
|
||||||
* @returns true if the entire string could be parsed as valid integer,
|
* @returns true if the entire string could be parsed as valid integer,
|
||||||
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
||||||
*/
|
*/
|
||||||
NODISCARD bool ParseUInt32(const std::string& str, uint32_t *out);
|
[[nodiscard]] bool ParseUInt32(const std::string& str, uint32_t *out);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert decimal string to unsigned 64-bit integer with strict parse error feedback.
|
* Convert decimal string to unsigned 64-bit integer with strict parse error feedback.
|
||||||
* @returns true if the entire string could be parsed as valid integer,
|
* @returns true if the entire string could be parsed as valid integer,
|
||||||
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
||||||
*/
|
*/
|
||||||
NODISCARD bool ParseUInt64(const std::string& str, uint64_t *out);
|
[[nodiscard]] bool ParseUInt64(const std::string& str, uint64_t *out);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert string to double with strict parse error feedback.
|
* Convert string to double with strict parse error feedback.
|
||||||
* @returns true if the entire string could be parsed as valid double,
|
* @returns true if the entire string could be parsed as valid double,
|
||||||
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
* false if not the entire string could be parsed or when overflow or underflow occurred.
|
||||||
*/
|
*/
|
||||||
NODISCARD bool ParseDouble(const std::string& str, double *out);
|
[[nodiscard]] bool ParseDouble(const std::string& str, double *out);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a span of bytes to a lower-case hexadecimal string.
|
* Convert a span of bytes to a lower-case hexadecimal string.
|
||||||
@ -161,7 +161,7 @@ bool TimingResistantEqual(const T& a, const T& b)
|
|||||||
* @returns true on success, false on error.
|
* @returns true on success, false on error.
|
||||||
* @note The result must be in the range (-10^18,10^18), otherwise an overflow error will trigger.
|
* @note The result must be in the range (-10^18,10^18), otherwise an overflow error will trigger.
|
||||||
*/
|
*/
|
||||||
NODISCARD bool ParseFixedPoint(const std::string &val, int decimals, int64_t *amount_out);
|
[[nodiscard]] bool ParseFixedPoint(const std::string &val, int decimals, int64_t *amount_out);
|
||||||
|
|
||||||
/** Convert from one power-of-2 number base to another. */
|
/** Convert from one power-of-2 number base to another. */
|
||||||
template<int frombits, int tobits, bool pad, typename O, typename I>
|
template<int frombits, int tobits, bool pad, typename O, typename I>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
NODISCARD inline std::string TrimString(const std::string& str, const std::string& pattern = " \f\n\r\t\v")
|
[[nodiscard]] inline std::string TrimString(const std::string& str, const std::string& pattern = " \f\n\r\t\v")
|
||||||
{
|
{
|
||||||
std::string::size_type front = str.find_first_not_of(pattern);
|
std::string::size_type front = str.find_first_not_of(pattern);
|
||||||
if (front == std::string::npos) {
|
if (front == std::string::npos) {
|
||||||
@ -59,7 +59,7 @@ inline std::string Join(const std::vector<std::string>& list, const std::string&
|
|||||||
/**
|
/**
|
||||||
* Check if a string does not contain any embedded NUL (\0) characters
|
* Check if a string does not contain any embedded NUL (\0) characters
|
||||||
*/
|
*/
|
||||||
NODISCARD inline bool ValidAsCString(const std::string& str) noexcept
|
[[nodiscard]] inline bool ValidAsCString(const std::string& str) noexcept
|
||||||
{
|
{
|
||||||
return str.size() == strlen(str.c_str());
|
return str.size() == strlen(str.c_str());
|
||||||
}
|
}
|
||||||
@ -68,7 +68,7 @@ NODISCARD inline bool ValidAsCString(const std::string& str) noexcept
|
|||||||
* Check whether a container begins with the given prefix.
|
* Check whether a container begins with the given prefix.
|
||||||
*/
|
*/
|
||||||
template <typename T1, size_t PREFIX_LEN>
|
template <typename T1, size_t PREFIX_LEN>
|
||||||
NODISCARD inline bool HasPrefix(const T1& obj,
|
[[nodiscard]] inline bool HasPrefix(const T1& obj,
|
||||||
const std::array<uint8_t, PREFIX_LEN>& prefix)
|
const std::array<uint8_t, PREFIX_LEN>& prefix)
|
||||||
{
|
{
|
||||||
return obj.size() >= PREFIX_LEN &&
|
return obj.size() >= PREFIX_LEN &&
|
||||||
|
Loading…
Reference in New Issue
Block a user