![]() |
The ZX Ecosystem v5.1.0;_GUI_v3.1.0
|
#include <type_traits>
#include <cstddef>
#include <climits>
#include <cstdint>
#include <cmath>
#include <cstring>
#include <string>
#include <sstream>
#include <iomanip>
#include <algorithm>
#include <chrono>
#include <thread>
#include <bitset>
#include <functional>
#include <mutex>
Go to the source code of this file.
Classes | |
class | FIntTraits< T > |
Collect diverse traits for the fixed integer type T. More... | |
class | FIntTraits< uint8_t > |
FIntTraits for uint8_t. More... | |
class | FIntTraits< uint16_t > |
FIntTraits for uint16_t. More... | |
class | FIntTraits< uint32_t > |
FIntTraits for uint32_t. More... | |
class | FIntTraits< uint64_t > |
FIntTraits for uint64_t. More... | |
class | FIntTraits< int8_t > |
FIntTraits for int8_t. More... | |
class | FIntTraits< int16_t > |
FIntTraits for int16_t. More... | |
class | FIntTraits< int32_t > |
FIntTraits for int32_t. More... | |
class | FIntTraits< int64_t > |
FIntTraits for int64_t. More... | |
class | NextIntType< NUMOFBITS > |
Provide the first signed integer type that has more than NUMOFBITS in memory. More... | |
class | NextIntType< CHAR_BIT *1 > |
NextIntType of 1 C-byte length types. More... | |
class | NextIntType< CHAR_BIT *2 > |
NextIntType of 2 C-bytes length types. More... | |
class | NextIntType< CHAR_BIT *3 > |
NextIntType of 3 C-bytes length types. More... | |
class | NextIntType< CHAR_BIT *4 > |
NextIntType of 4 C-bytes length types. More... | |
class | NextIntType< CHAR_BIT *5 > |
NextIntType of 5 C-bytes length types. More... | |
class | NextIntType< CHAR_BIT *6 > |
NextIntType of 6 C-bytes length types. More... | |
class | NextIntType< CHAR_BIT *7 > |
NextIntType of 7 C-bytes length types. More... | |
class | LongestType< T0, T1, sizet0smallerthansizet1 > |
Select the longest type in memory of two given types T0 and T1. More... | |
class | LongestType< T0, T1, true > |
Case of sizeof(T0) < sizeof(T1) More... | |
class | NaturalRange< BaseIntegerType, MAXVAL > |
An unsigned integer type that is bound-protected. More... | |
class | Interval< ELEMTYPE > |
An interval, typically numeric, either closed, opened or semi-closed. More... | |
class | IterableEnum< T > |
A generic enum for adding iteration capabilities to C++11 enum class. More... | |
class | IterableEnum< T >::Iterator |
The iterator of IterableEnum. More... | |
class | ThreadSafer< Unsafe > |
Makes an unsafe class thread-safe. More... | |
class | ThreadSafer< Unsafe >::Proxy |
A proxy to access objects in a safe manner. Not used directly. More... | |
Macros | |
#define | BINTOSTREAM(v, n) (std::bitset<n>{v}) |
Format V in binary for feeding it to a stream, up to the bit number N-1. More... | |
#define | JUSTFILENAME |
Strips FILE from entire path. More... | |
#define | DEBUGPREFFIX(txt) |
Generate a string for debugging uses (see the Debugging module). More... | |
#define | RUNTIMEEXCEP(txt) |
Raise a runtime exception with the given std::string TXT + additional info. More... | |
#define | INTERNALERROR(txt) RUNTIMEEXCEP("Internal error - " + txt) |
Raise a runtime exception indicating internal error. More... | |
Typedefs | |
using | LongestUnsignedType = unsigned long long |
Longest unsigned integral type in the target machine. More... | |
Enumerations | |
enum class | IntervalCl : uint8_t { CLOSED , OPENED , LEFT_CLOSED , RIGHT_CLOSED } |
Kinds of closedness for intervals. More... | |
Functions | |
template<typename NumType > | |
NumType | string_hex_to_num (const std::string &txt) |
Return the unsigned int. value of a number expressed in hexadecimal form. More... | |
template<typename NumType > | |
std::string | num_to_string_hex (NumType n, bool padding=true) |
Convert an integral number to string in hexadecimal format, without preffix. More... | |
template<typename PointedType > | |
std::string | hex_dump (const PointedType *data, size_t howmany, bool toupp=true, bool sepelems=true) |
Return a string that represents all hex codes of the pointed bytes. More... | |
LongestUnsignedType | pointer_to_number (const void *p) noexcept |
Return the numerical value (address) of the given pointer. More... | |
constexpr uint8_t | all_bits_set_up_to_n (uint8_t n) |
Return a byte with its (N+1) least-significant bits set (N must be in [0,7]) More... | |
template<typename T , unsigned char N = sizeof(T)*CHAR_BIT> | |
T | reverse_bits (T v) |
Reverse the bits in an integral value, up to bit number N-1. More... | |
template<typename T > | |
unsigned char | count_bits_set (T v) |
Count the number of bits that are set in an integral value. More... | |
template<typename T , unsigned char N = sizeof(T)*CHAR_BIT> | |
unsigned char | most_significant_bit_set (T b) |
Return the index of the MSb set in B, or the number of bits in T if none. More... | |
template<typename T , unsigned char N = sizeof(T)*CHAR_BIT> | |
unsigned char | least_significant_bit_set (T b) |
Return the index of the LSb set in B, or the number of bits in T if none. More... | |
template<typename T > | |
bool | more_bits_set (T b1, T b2) |
Return TRUE if B1 has the same bits set as B2 plus at least 1 more bit set. More... | |
template<typename T > | |
T | substract_bits (T b1, T b2) |
Substract bits of B2 from B1. More... | |
template<typename T > | |
bool | new_bits_set (T b1, T b2) |
Return TRUE if B1 has some bit set that B2 has not, indepently on other bits. More... | |
template<unsigned char N> | |
constexpr unsigned char | bits_of_constexprvalue () |
Return the number of bits needed by a constexpr value N. More... | |
template<typename T > | |
unsigned char | bits_of_value (T v) |
The same as bits_of_constexprvalue(v) but for any variable value. More... | |
template<class TIter , class TBody > | |
void | for_within (TIter i_first, TIter i_last, const TBody &body) |
Iterate through consecutive values without using any value outside the range. More... | |
void | pad_string (std::string &s, size_t len, bool leftorright=true, char padding='\t') |
Pad S up to LEN characters PADDING either to the left (TRUE) or right. More... | |
LongestUnsignedType | utime_now (void) |
Return the current time since epoch in microseconds. More... | |
Variables | |
static const double | PI = std::acos(-1.0) |
The PI constant. More... | |