Go to the documentation of this file. 1 #ifndef PRINT_DEBUG_HPP
2 #define PRINT_DEBUG_HPP
4 template <
typename,
typename =
void>
8 constexpr
bool is_iterable<T, std::void_t<decltype(std::declval<T>().begin()),
9 decltype(std::declval<T>().end())>> =
12 template <
typename T,
typename U>
14 const std::pair<T, U>&
data) noexcept {
18 template <
typename T, std::enable_if_t<is_iterable<T>,
bool> = true>
20 for (
auto it =
data.begin(); it !=
data.end(); it++) {
30 template <
typename T,
typename =
void>
35 : std::iterator_traits<typename T::container_type::iterator> {};
38 inline void print(std::ostream& stream,
const char* format) { stream << format; }
40 template <
typename T,
typename... Targs>
41 void print(std::ostream& stream,
const char* format, T&&
value,
43 for (; *format !=
'\0'; format++) {
46 print(stream, format + 1, fargs...);
53 inline void print(
const char* format) { std::cout << format; }
55 template <
typename T,
typename... Targs>
56 void print(
const char* format, T&&
value, Targs&&... fargs) {
constexpr bool is_iterable
subroutine os(tamoy, trmoy, pizmoy, tamoyp, trmoyp, palt, phirad, nt, mu, np, rm, gb, rp, xl)
void print(std::ostream &stream, const char *format)
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude data
std::ostream & operator<<(std::ostream &os, const std::pair< T, U > &data) noexcept