Merge pull request #7661

08e4497 Improve cryptonote (block and tx) binary read performance (Lee Clagett)
This commit is contained in:
luigi1111 2021-06-10 12:00:54 -05:00
commit 7499837a6f
No known key found for this signature in database
GPG key ID: F4ACA0183641E010
29 changed files with 229 additions and 230 deletions

View file

@ -31,7 +31,6 @@
#include <algorithm>
#include <cstdint>
#include <memory>
#include <string>
#include <type_traits>
namespace epee
@ -167,10 +166,11 @@ namespace epee
}
//! make a span from a std::string
template<typename T>
span<const T> strspan(const std::string &s) noexcept
template<typename T, typename U>
span<const T> strspan(const U&s) noexcept
{
static_assert(std::is_same<T, char>() || std::is_same<T, unsigned char>() || std::is_same<T, int8_t>() || std::is_same<T, uint8_t>(), "Unexpected type");
static_assert(std::is_same<typename U::value_type, char>(), "unexpected source type");
static_assert(std::is_same<T, char>() || std::is_same<T, unsigned char>() || std::is_same<T, int8_t>() || std::is_same<T, uint8_t>(), "Unexpected destination type");
return {reinterpret_cast<const T*>(s.data()), s.size()};
}
}