#include <Logger.h>
Base class for all context classes, which serve as a compile-time identifiable log contextss.
Public Types | |
| using | arg_types_tuple = std::tuple< std::remove_cvref_t< Args >... > |
| template<std::size_t Idx> | |
| using | arg_t = decltype(to_arg(std::declval< std::tuple_element_t< Idx, arg_types_tuple > >())) |
Static Public Member Functions | |
| template<typename T > | |
| static constexpr decltype(auto) | to_arg (T &&arg) |
| template<std::size_t Idx, typename ... Ts> | |
| static arg_t< Idx > | get_arg (Ts &&...args) |
Static Public Attributes | |
| static constexpr const char * | name |
| static constexpr bool | uses_fixed_arguments = fixed_args |
| static constexpr std::size_t | num_args = sizeof...(Args) |
| using molpro::linalg::itsolv::log::ContextBase< CRTP, fixed_args, Args >::arg_t = decltype(to_arg(std::declval<std::tuple_element_t<Idx, arg_types_tuple> >())) |
The type if the Idx-th argument that uses of this log context imply. Only applies if the context actually uses a fixed argument set.
| using molpro::linalg::itsolv::log::ContextBase< CRTP, fixed_args, Args >::arg_types_tuple = std::tuple<std::remove_cvref_t<Args>...> |
|
inlinestatic |
Extracts the requested argument from the provided argument pack
|
inlinestaticconstexpr |
Converts the given object to the type it should be handled as in downstream log handlers. For non-ranges that means ensuring the type is const a const reference whereas for ranges, we convert them to a view (as const ranges can't be iterated over in the general case).
|
staticconstexpr |
The name of this logging context
|
staticconstexpr |
Number of arguments calls using this log context will use (if using a fixed argument set)
|
staticconstexpr |
Whether calls using this log context use a fixed set of arguments