add more restrict for write log with data/str (#652)
This commit is contained in:
parent
119abbc8f7
commit
38e2b7bd01
|
@ -63,8 +63,8 @@ template <typename Type, typename = void>
|
|||
struct has_data : std::false_type {};
|
||||
|
||||
template <typename T>
|
||||
struct has_data<T, std::void_t<decltype(std::declval<T>().data())>>
|
||||
: std::true_type {};
|
||||
struct has_data<T, std::void_t<decltype(std::declval<std::string>().append(
|
||||
std::declval<T>().data()))>> : std::true_type {};
|
||||
|
||||
template <typename T>
|
||||
constexpr inline bool has_data_v = has_data<std::remove_cvref_t<T>>::value;
|
||||
|
@ -73,8 +73,8 @@ template <typename Type, typename = void>
|
|||
struct has_str : std::false_type {};
|
||||
|
||||
template <typename T>
|
||||
struct has_str<T, std::void_t<decltype(std::declval<T>().str())>>
|
||||
: std::true_type {};
|
||||
struct has_str<T, std::void_t<decltype(std::declval<std::string>().append(
|
||||
std::declval<T>().str()))>> : std::true_type {};
|
||||
|
||||
template <typename T>
|
||||
constexpr inline bool has_str_v = has_str<std::remove_cvref_t<T>>::value;
|
||||
|
|
|
@ -42,6 +42,20 @@ TEST_CASE("test severity") {
|
|||
easylog::severity_str(easylog::Severity::FATAL));
|
||||
}
|
||||
|
||||
struct dummy_t {
|
||||
int* data() const {
|
||||
static int val = 42;
|
||||
return &val;
|
||||
}
|
||||
|
||||
friend std::ostream& operator<<(std::ostream& os, const dummy_t& t);
|
||||
};
|
||||
|
||||
std::ostream& operator<<(std::ostream& os, const dummy_t& t) {
|
||||
os << t.data();
|
||||
return os;
|
||||
}
|
||||
|
||||
TEST_CASE("test basic") {
|
||||
std::string filename = "easylog.txt";
|
||||
std::filesystem::remove(filename);
|
||||
|
@ -65,6 +79,8 @@ TEST_CASE("test basic") {
|
|||
ELOG_INFO << "info log";
|
||||
easylog::set_min_severity(Severity::DEBUG);
|
||||
|
||||
ELOG_INFO << dummy_t{};
|
||||
|
||||
std::unique_ptr<int> ptr(new int(42));
|
||||
ELOG_INFO << ptr.get();
|
||||
ELOG_INFO << 42 << " " << 4.5 << 'a' << Severity::DEBUG;
|
||||
|
|
Loading…
Reference in New Issue