test count delete

This commit is contained in:
chatlanin 2022-03-27 22:52:32 +03:00
parent bde4398888
commit 4820cbf7f7
2 changed files with 52 additions and 52 deletions

View File

@ -2,22 +2,22 @@
namespace hack namespace hack
{ {
std::string log::devider_ = " "; // std::string log::devider = " ";
int log::count_ = 0; // int log::count = 0;
log::log(const std::string devider, std::experimental::source_location location) : location_ { location } log::log(const std::string devider_, std::experimental::source_location location_) : location { location_ }
{ {
this->devider_ = devider; //this->devider = devider_;
} }
warn::warn(const std::string devider, std::experimental::source_location location) : location_ { location } warn::warn(const std::string devider_, std::experimental::source_location location_) : location { location_ }
{ {
this->devider_ = devider; //this->devider = devider_;
} }
error::error(const std::string devider, std::experimental::source_location location) : location_ { location } error::error(const std::string devider_, std::experimental::source_location location_) : location { location_ }
{ {
this->devider_ = devider; //this->devider = devider_;
} }
void log::print() { std::cout << std::endl; } void log::print() { std::cout << std::endl; }

View File

@ -13,7 +13,7 @@ namespace hack
class log class log
{ {
public: public:
log(const std::string devider = ", ", std::experimental::source_location location = std::experimental::source_location::current()); log(const std::string devider_ = ", ", std::experimental::source_location location_ = std::experimental::source_location::current());
log(log&) = delete; log(log&) = delete;
log(log&&) = delete; log(log&&) = delete;
@ -21,80 +21,80 @@ namespace hack
template<typename... Args> template<typename... Args>
void operator() (const Args&... args) void operator() (const Args&... args)
{ {
std::cout << make_type_view std::cout /*<< make_type_view*/
<< location_.file_name() << ":" << view::color::reset << location.file_name() << ":" << view::color::reset
<< view::color::italic << view::color::yellow << location_.function_name() << "()" << view::color::reset << view::color::italic << view::color::yellow << location.function_name() << "()" << view::color::reset
<< view::color::bold << view::color::blue << "[" << location_.line() << "]" << view::color::reset << ": "; << view::color::bold << view::color::blue << "[" << location.line() << "]" << view::color::reset << ": ";
count_ = sizeof...(Args); //count = sizeof...(Args);
print(args...); print(args...);
} }
private: private:
std::experimental::source_location location_; std::experimental::source_location location;
static int count_; //static int count;
static std::string devider_; //static std::string devider;
private: private:
static void print(); void print();
static std::ostream& make_type_view(std::ostream &os) std::ostream& make_type_view(std::ostream &os)
{ {
os << view::color::bold << view::color::green << "[ok]" << view::color::reset << view::color::green; os << view::color::bold << view::color::green << "[ok]" << view::color::reset << view::color::green;
return os; return os;
} }
template<typename T, typename... Args> template<typename T, typename... Args>
static void print(const T& data, const Args&... args) void print(const T& data, const Args&... args)
{ {
count_--; //count--;
print_t(data); print_t(data);
print(args...); print(args...);
} }
template<concepts::is_string T> template<concepts::is_string T>
static void print_t(const T& data) void print_t(const T& data)
{ {
std::cout << data << (count_ != 0 ? devider_ : ""); //std::cout << data << (count != 0 ? devider : "");
} }
template<std::integral T> template<std::integral T>
static void print_t(const T& data) void print_t(const T& data)
{ {
std::cout << data << (count_ != 0 ? devider_ : ""); //std::cout << data << (count != 0 ? devider : "");
} }
template<concepts::is_sequence_container T> template<concepts::is_sequence_container T>
static void print_t(const T& data) void print_t(const T& data)
{ {
std::cout << "{ "; std::cout << "{ ";
std::copy(data.cbegin(), data.cend(), iterators::sequence_ostream_iterator<typename T::value_type>(data.size(), std::cout)); std::copy(data.cbegin(), data.cend(), iterators::sequence_ostream_iterator<typename T::value_type>(data.size(), std::cout));
std::cout << " }" << (count_ != 0 ? devider_ : ""); //std::cout << " }" << (count != 0 ? devider : "");
} }
template<concepts::is_map T> template<concepts::is_map T>
static void print_t(const T& data) void print_t(const T& data)
{ {
std::cout << "{"; std::cout << "{";
std::copy(data.cbegin(), data.cend(), iterators::associative_ostream_iterator<typename T::value_type>(data.size(), std::cout)); std::copy(data.cbegin(), data.cend(), iterators::associative_ostream_iterator<typename T::value_type>(data.size(), std::cout));
std::cout << "}" << (count_ != 0 ? devider_ : ""); //std::cout << "}" << (count != 0 ? devider : "");
} }
template<concepts::is_tuple T, typename std::size_t... idx> template<concepts::is_tuple T, typename std::size_t... idx>
static void print_t(const T& data) void print_t(const T& data)
{ {
print_t(data, std::make_index_sequence<std::tuple_size<T>::value>{}); print_t(data, std::make_index_sequence<std::tuple_size<T>::value>{});
} }
template<typename T, typename std::size_t... idx> template<typename T, typename std::size_t... idx>
static void print_t(const T& data, std::index_sequence<idx...>) void print_t(const T& data, std::index_sequence<idx...>)
{ {
std::cout << "{ "; std::cout << "{ ";
((std::cout << std::get<idx>(data) << (idx != std::tuple_size<T>::value - 1 ? devider_ : "")), ...); // ((std::cout << std::get<idx>(data) << (idx != std::tuple_size<T>::value - 1 ? devider : "")), ...);
std::cout << " }" << (count_ != 0 ? devider_ : ""); //std::cout << " }" << (count != 0 ? devider : "");
} }
template<typename T, std::size_t demention> template<typename T, std::size_t demention>
static void print_t(const matrix<T, demention>& data) void print_t(const matrix<T, demention>& data)
{ {
std::size_t index = data.size(); std::size_t index = data.size();
for (auto& r : data) for (auto& r : data)
@ -107,9 +107,9 @@ namespace hack
} }
template<concepts::not_defined T> template<concepts::not_defined T>
static void print_t(const T& data) void print_t(const T& data)
{ {
std::cout << data << (count_ != 0 ? devider_ : ""); //std::cout << data << (count != 0 ? devider : "");
} }
friend class warn; friend class warn;
@ -119,7 +119,7 @@ namespace hack
class warn : public log class warn : public log
{ {
public: public:
warn(const std::string devider = ", ", std::experimental::source_location location = std::experimental::source_location::current()); warn(const std::string devider_ = ", ", std::experimental::source_location location_ = std::experimental::source_location::current());
warn(log&) = delete; warn(log&) = delete;
warn(log&&) = delete; warn(log&&) = delete;
@ -127,19 +127,19 @@ namespace hack
template<typename... Args> template<typename... Args>
void operator() (const Args&... args) void operator() (const Args&... args)
{ {
std::cout << make_type_view std::cout /*<< make_type_view*/
<< location_.file_name() << ":" << view::color::reset << location.file_name() << ":" << view::color::reset
<< view::color::italic << view::color::yellow << location_.function_name() << "()" << view::color::reset << view::color::italic << view::color::yellow << location.function_name() << "()" << view::color::reset
<< view::color::bold << view::color::blue << "[" << location_.line() << "]" << view::color::reset << ": "; << view::color::bold << view::color::blue << "[" << location.line() << "]" << view::color::reset << ": ";
count_ = sizeof...(Args); //count = sizeof...(Args);
print(args...); print(args...);
} }
private: private:
std::experimental::source_location location_; std::experimental::source_location location;
private: private:
static std::ostream& make_type_view(std::ostream &os) std::ostream& make_type_view(std::ostream &os)
{ {
os << view::color::bold << view::color::yellow << "[WARN]" << view::color::reset << view::color::yellow; os << view::color::bold << view::color::yellow << "[WARN]" << view::color::reset << view::color::yellow;
return os; return os;
@ -149,7 +149,7 @@ namespace hack
class error : public log class error : public log
{ {
public: public:
error(const std::string devider = ", ", std::experimental::source_location location = std::experimental::source_location::current()); error(const std::string devider_ = ", ", std::experimental::source_location location_ = std::experimental::source_location::current());
error(log&) = delete; error(log&) = delete;
error(log&&) = delete; error(log&&) = delete;
@ -157,19 +157,19 @@ namespace hack
template<typename... Args> template<typename... Args>
void operator() (const Args&... args) void operator() (const Args&... args)
{ {
std::cout << make_type_view std::cout /*<< make_type_view*/
<< location_.file_name() << ":" << view::color::reset << location.file_name() << ":" << view::color::reset
<< view::color::italic << view::color::yellow << location_.function_name() << "()" << view::color::reset << view::color::italic << view::color::yellow << location.function_name() << "()" << view::color::reset
<< view::color::bold << view::color::blue << "[" << location_.line() << "]" << view::color::reset << ": "; << view::color::bold << view::color::blue << "[" << location.line() << "]" << view::color::reset << ": ";
count_ = sizeof...(Args); //count = sizeof...(Args);
print(args...); print(args...);
} }
private: private:
std::experimental::source_location location_; std::experimental::source_location location;
private: private:
static std::ostream& make_type_view(std::ostream &os) std::ostream& make_type_view(std::ostream &os)
{ {
os << view::color::bold << view::color::red << "[ERROR]" << view::color::reset << view::color::red; os << view::color::bold << view::color::red << "[ERROR]" << view::color::reset << view::color::red;
return os; return os;