23 std::ostringstream stream;
24 auto num_bytes =
static_cast<uint64_t
>(
sizeof(T));
25 auto mask =
static_cast<uint64_t
>((
static_cast<uint128_t>(1) << (num_bytes * 8)) - 1);
26 auto padding =
static_cast<int>(num_bytes * 2);
33 std::ostringstream stream;
35 for (
size_t i = 0; i < N; ++i) {
48 std::ostringstream stream;
50 for (
size_t i = 0; i < N; ++i) {
51 stream << COLUMN_NAMES[static_cast<size_t>(columns[i])] <<
": " <<
field_to_string(arr[i]);
60template <
typename... Ts,
size_t N>
63 static_assert(
sizeof...(Ts) == N,
"Tuple and columns array must have the same size");
64 std::ostringstream stream;
68 ((stream << (i++ > 0 ?
", " :
"") <<
COLUMN_NAMES[
static_cast<size_t>(columns[Is])] <<
": "
std::string to_hex(T value)
std::string to_string(const std::array< FF, N > &arr)
std::string column_values_to_string(const std::array< FF, N > &arr, const std::array< ColumnAndShifts, N > &columns)
const std::vector< std::string > & COLUMN_NAMES
std::string field_to_string(const FF &ff)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
TUPLET_INLINE constexpr decltype(auto) get(Tup &&tup)
unsigned __int128 uint128_t