add boost index type in the logger
This commit is contained in:
parent
393aa844a4
commit
dbd0a07f57
12
bin/main.cpp
12
bin/main.cpp
@ -33,6 +33,11 @@ int minus(int a)
|
|||||||
return a--;
|
return a--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct ForTypeTrace
|
||||||
|
{
|
||||||
|
int a;
|
||||||
|
};
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
{// ex: string::split_str
|
{// ex: string::split_str
|
||||||
@ -48,16 +53,19 @@ int main(int argc, char *argv[])
|
|||||||
{// ex: container::vector_multiset
|
{// ex: container::vector_multiset
|
||||||
std::vector<std::string> v;
|
std::vector<std::string> v;
|
||||||
hack::container::vector_multiset(v, "asdf", "qwer", "zcv");
|
hack::container::vector_multiset(v, "asdf", "qwer", "zcv");
|
||||||
for(const auto& c : v) std::cout << c << std::endl;
|
for(const auto& c : v) hack::log()(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
{// ex: container::set_multiset
|
{// ex: container::set_multiset
|
||||||
std::set<int> s;
|
std::set<int> s;
|
||||||
hack::container::set_multiset(s, 1, 2, 3, 3, 2, 1);
|
hack::container::set_multiset(s, 1, 2, 3, 3, 2, 1);
|
||||||
for(const auto& c : s) std::cout << c << std::endl;
|
for(const auto& c : s) hack::log()(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
{// ex: logger::log
|
{// ex: logger::log
|
||||||
|
int a = 10;
|
||||||
|
ForTypeTrace ftt { 1234 };
|
||||||
|
hack::log::type_trace(a, a, ftt);
|
||||||
hack::log()(1234, "run in main", 1234);
|
hack::log()(1234, "run in main", 1234);
|
||||||
hack::warn(" # ")(1234, "run in main", 1234);
|
hack::warn(" # ")(1234, "run in main", 1234);
|
||||||
hack::error(" - ")(1234, "run in main", 1234);
|
hack::error(" - ")(1234, "run in main", 1234);
|
||||||
|
@ -22,8 +22,11 @@ elif compiler.get_id() == 'clang'
|
|||||||
message('Compiler: LLVM/clang')
|
message('Compiler: LLVM/clang')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
boost_dep = dependency('boost')
|
||||||
|
|
||||||
args = []
|
args = []
|
||||||
deps = []
|
deps = []
|
||||||
|
deps += boost_dep
|
||||||
inc = []
|
inc = []
|
||||||
|
|
||||||
subdir('src')
|
subdir('src')
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
#include <experimental/source_location>
|
#include <experimental/source_location>
|
||||||
|
|
||||||
|
#include "boost/type_index.hpp"
|
||||||
|
|
||||||
#include "view/color.hpp"
|
#include "view/color.hpp"
|
||||||
#include "concepts/concepts.hpp"
|
#include "concepts/concepts.hpp"
|
||||||
#include "iterators/sequence_ostream_iterator.hpp"
|
#include "iterators/sequence_ostream_iterator.hpp"
|
||||||
@ -10,6 +12,15 @@
|
|||||||
|
|
||||||
namespace hack
|
namespace hack
|
||||||
{
|
{
|
||||||
|
template<typename T, typename U>
|
||||||
|
void prepare(T t, U u)
|
||||||
|
{
|
||||||
|
std::cout << t
|
||||||
|
<< u.file_name() << ":" << view::color::reset
|
||||||
|
<< view::color::italic << view::color::yellow << u.function_name() << "()" << view::color::reset
|
||||||
|
<< view::color::bold << view::color::blue << "[" << u.line() << "]" << view::color::reset << ": ";
|
||||||
|
}
|
||||||
|
|
||||||
class log
|
class log
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -21,14 +32,19 @@ namespace hack
|
|||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void operator() (const Args&... args)
|
void operator() (const Args&... args)
|
||||||
{
|
{
|
||||||
std::cout << make_type_view
|
|
||||||
<< location.file_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 << ": ";
|
|
||||||
count = sizeof...(Args);
|
count = sizeof...(Args);
|
||||||
|
prepare(make_type_view, location);
|
||||||
print(args...);
|
print(args...);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename... Args>
|
||||||
|
static void type_trace(const Args&... args)
|
||||||
|
{
|
||||||
|
std::cout << make_type_view << ": " << view::color::reset;
|
||||||
|
count = sizeof...(Args);
|
||||||
|
print(boost::typeindex::type_id<Args>().pretty_name()...);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::experimental::source_location location;
|
std::experimental::source_location location;
|
||||||
static int count;
|
static int count;
|
||||||
@ -127,10 +143,7 @@ namespace hack
|
|||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void operator() (const Args&... args)
|
void operator() (const Args&... args)
|
||||||
{
|
{
|
||||||
std::cout << make_type_view
|
prepare(make_type_view, location);
|
||||||
<< location.file_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 << ": ";
|
|
||||||
count = sizeof...(Args);
|
count = sizeof...(Args);
|
||||||
print(args...);
|
print(args...);
|
||||||
}
|
}
|
||||||
@ -157,10 +170,7 @@ namespace hack
|
|||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void operator() (const Args&... args)
|
void operator() (const Args&... args)
|
||||||
{
|
{
|
||||||
std::cout << make_type_view
|
prepare(make_type_view, location);
|
||||||
<< location.file_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 << ": ";
|
|
||||||
count = sizeof...(Args);
|
count = sizeof...(Args);
|
||||||
print(args...);
|
print(args...);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user