Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
S
spdlog
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
spdlog
Commits
78c833a0
Commit
78c833a0
authored
Jun 18, 2019
by
gabime
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clang-format
parent
38888ba5
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
99 additions
and
114 deletions
+99
-114
common.h
include/spdlog/common.h
+0
-2
console_globals.h
include/spdlog/details/console_globals.h
+0
-1
logger-inl.h
include/spdlog/logger-inl.h
+95
-98
logger.h
include/spdlog/logger.h
+1
-2
ansicolor_sink.h
include/spdlog/sinks/ansicolor_sink.h
+1
-3
wincolor_sink-inl.h
include/spdlog/sinks/wincolor_sink-inl.h
+0
-3
wincolor_sink.h
include/spdlog/sinks/wincolor_sink.h
+0
-0
test_pattern_formatter.cpp
tests/test_pattern_formatter.cpp
+2
-5
No files found.
include/spdlog/common.h
View file @
78c833a0
...
@@ -26,13 +26,11 @@
...
@@ -26,13 +26,11 @@
#include <windows.h>
#include <windows.h>
#endif //_WIN32
#endif //_WIN32
#if defined(SPDLOG_WCHAR_FILENAMES) || defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
#if defined(SPDLOG_WCHAR_FILENAMES) || defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
#include <codecvt>
#include <codecvt>
#include <locale>
#include <locale>
#endif
#endif
#ifdef SPDLOG_COMPILED_LIB
#ifdef SPDLOG_COMPILED_LIB
#undef SPDLOG_HEADER_ONLY
#undef SPDLOG_HEADER_ONLY
#define SPDLOG_INLINE
#define SPDLOG_INLINE
...
...
include/spdlog/details/console_globals.h
View file @
78c833a0
...
@@ -6,7 +6,6 @@
...
@@ -6,7 +6,6 @@
#include "spdlog/details/null_mutex.h"
#include "spdlog/details/null_mutex.h"
#include <mutex>
#include <mutex>
namespace
spdlog
{
namespace
spdlog
{
namespace
details
{
namespace
details
{
...
...
include/spdlog/logger-inl.h
View file @
78c833a0
...
@@ -12,58 +12,54 @@
...
@@ -12,58 +12,54 @@
namespace
spdlog
{
namespace
spdlog
{
// public methods
// public methods
SPDLOG_INLINE
logger
::
logger
(
const
logger
&
other
)
:
SPDLOG_INLINE
logger
::
logger
(
const
logger
&
other
)
name_
(
other
.
name_
),
:
name_
(
other
.
name_
)
sinks_
(
other
.
sinks_
),
,
sinks_
(
other
.
sinks_
)
level_
(
other
.
level_
.
load
(
std
::
memory_order_relaxed
)),
,
level_
(
other
.
level_
.
load
(
std
::
memory_order_relaxed
))
flush_level_
(
other
.
flush_level_
.
load
(
std
::
memory_order_relaxed
)),
,
flush_level_
(
other
.
flush_level_
.
load
(
std
::
memory_order_relaxed
))
custom_err_handler_
(
other
.
custom_err_handler_
)
,
custom_err_handler_
(
other
.
custom_err_handler_
)
{
{}
}
SPDLOG_INLINE
logger
::
logger
(
logger
&&
other
)
SPDLOG_INLINE
logger
::
logger
(
logger
&&
other
)
:
:
name_
(
std
::
move
(
other
.
name_
))
name_
(
std
::
move
(
other
.
name_
)),
,
sinks_
(
std
::
move
(
other
.
sinks_
))
sinks_
(
std
::
move
(
other
.
sinks_
)),
,
level_
(
other
.
level_
.
load
(
std
::
memory_order_relaxed
))
level_
(
other
.
level_
.
load
(
std
::
memory_order_relaxed
)),
,
flush_level_
(
other
.
flush_level_
.
load
(
std
::
memory_order_relaxed
))
flush_level_
(
other
.
flush_level_
.
load
(
std
::
memory_order_relaxed
)),
,
custom_err_handler_
(
std
::
move
(
other
.
custom_err_handler_
))
custom_err_handler_
(
std
::
move
(
other
.
custom_err_handler_
))
{}
{
}
SPDLOG_INLINE
logger
&
logger
::
operator
=
(
logger
other
)
{
SPDLOG_INLINE
logger
&
logger
::
operator
=
(
logger
other
)
{
this
->
swap
(
other
);
this
->
swap
(
other
);
return
*
this
;
return
*
this
;
}
}
SPDLOG_INLINE
void
logger
::
swap
(
spdlog
::
logger
&
other
)
SPDLOG_INLINE
void
logger
::
swap
(
spdlog
::
logger
&
other
)
{
{
name_
.
swap
(
other
.
name_
);
name_
.
swap
(
other
.
name_
);
sinks_
.
swap
(
other
.
sinks_
);
sinks_
.
swap
(
other
.
sinks_
);
//
swap level_
//
swap level_
auto
tmp
=
other
.
level_
.
load
();
auto
tmp
=
other
.
level_
.
load
();
tmp
=
level_
.
exchange
(
tmp
);
tmp
=
level_
.
exchange
(
tmp
);
other
.
level_
.
store
(
tmp
);
other
.
level_
.
store
(
tmp
);
//
swap flush level_
//
swap flush level_
tmp
=
other
.
flush_level_
.
load
();
tmp
=
other
.
flush_level_
.
load
();
tmp
=
flush_level_
.
exchange
(
tmp
);
tmp
=
flush_level_
.
exchange
(
tmp
);
other
.
flush_level_
.
store
(
tmp
);
other
.
flush_level_
.
store
(
tmp
);
custom_err_handler_
.
swap
(
other
.
custom_err_handler_
);
custom_err_handler_
.
swap
(
other
.
custom_err_handler_
);
}
}
SPDLOG_INLINE
void
swap
(
logger
&
a
,
logger
&
b
)
SPDLOG_INLINE
void
swap
(
logger
&
a
,
logger
&
b
)
{
{
a
.
swap
(
b
);
a
.
swap
(
b
);
}
}
void
logger
::
log
(
source_loc
loc
,
level
::
level_enum
lvl
,
const
char
*
msg
)
void
logger
::
log
(
source_loc
loc
,
level
::
level_enum
lvl
,
const
char
*
msg
)
{
{
if
(
!
should_log
(
lvl
))
if
(
!
should_log
(
lvl
))
{
{
return
;
return
;
...
@@ -82,42 +78,42 @@ namespace spdlog {
...
@@ -82,42 +78,42 @@ namespace spdlog {
{
{
err_handler_
(
"Unknown exception in logger"
);
err_handler_
(
"Unknown exception in logger"
);
}
}
}
}
SPDLOG_INLINE
void
logger
::
log
(
level
::
level_enum
lvl
,
const
char
*
msg
)
SPDLOG_INLINE
void
logger
::
log
(
level
::
level_enum
lvl
,
const
char
*
msg
)
{
{
log
(
source_loc
{},
lvl
,
msg
);
log
(
source_loc
{},
lvl
,
msg
);
}
}
SPDLOG_INLINE
bool
logger
::
should_log
(
level
::
level_enum
msg_level
)
const
SPDLOG_INLINE
bool
logger
::
should_log
(
level
::
level_enum
msg_level
)
const
{
{
return
msg_level
>=
level_
.
load
(
std
::
memory_order_relaxed
);
return
msg_level
>=
level_
.
load
(
std
::
memory_order_relaxed
);
}
}
SPDLOG_INLINE
void
logger
::
set_level
(
level
::
level_enum
log_level
)
SPDLOG_INLINE
void
logger
::
set_level
(
level
::
level_enum
log_level
)
{
{
level_
.
store
(
log_level
);
level_
.
store
(
log_level
);
}
}
SPDLOG_INLINE
level
::
level_enum
logger
::
default_level
()
SPDLOG_INLINE
level
::
level_enum
logger
::
default_level
()
{
{
return
static_cast
<
level
::
level_enum
>
(
SPDLOG_ACTIVE_LEVEL
);
return
static_cast
<
level
::
level_enum
>
(
SPDLOG_ACTIVE_LEVEL
);
}
}
SPDLOG_INLINE
level
::
level_enum
logger
::
level
()
const
SPDLOG_INLINE
level
::
level_enum
logger
::
level
()
const
{
{
return
static_cast
<
level
::
level_enum
>
(
level_
.
load
(
std
::
memory_order_relaxed
));
return
static_cast
<
level
::
level_enum
>
(
level_
.
load
(
std
::
memory_order_relaxed
));
}
}
SPDLOG_INLINE
const
std
::
string
&
logger
::
name
()
const
SPDLOG_INLINE
const
std
::
string
&
logger
::
name
()
const
{
{
return
name_
;
return
name_
;
}
}
// set formatting for the sinks in this logger.
// set formatting for the sinks in this logger.
// each sink will get a seperate instance of the formatter object.
// each sink will get a seperate instance of the formatter object.
SPDLOG_INLINE
void
logger
::
set_formatter
(
std
::
unique_ptr
<
formatter
>
f
)
SPDLOG_INLINE
void
logger
::
set_formatter
(
std
::
unique_ptr
<
formatter
>
f
)
{
{
for
(
auto
it
=
sinks_
.
begin
();
it
!=
sinks_
.
end
();
++
it
)
for
(
auto
it
=
sinks_
.
begin
();
it
!=
sinks_
.
end
();
++
it
)
{
{
if
(
std
::
next
(
it
)
==
sinks_
.
end
())
if
(
std
::
next
(
it
)
==
sinks_
.
end
())
...
@@ -130,17 +126,17 @@ namespace spdlog {
...
@@ -130,17 +126,17 @@ namespace spdlog {
(
*
it
)
->
set_formatter
(
f
->
clone
());
(
*
it
)
->
set_formatter
(
f
->
clone
());
}
}
}
}
}
}
SPDLOG_INLINE
void
logger
::
set_pattern
(
std
::
string
pattern
,
pattern_time_type
time_type
)
SPDLOG_INLINE
void
logger
::
set_pattern
(
std
::
string
pattern
,
pattern_time_type
time_type
)
{
{
auto
new_formatter
=
details
::
make_unique
<
pattern_formatter
>
(
std
::
move
(
pattern
),
time_type
);
auto
new_formatter
=
details
::
make_unique
<
pattern_formatter
>
(
std
::
move
(
pattern
),
time_type
);
set_formatter
(
std
::
move
(
new_formatter
));
set_formatter
(
std
::
move
(
new_formatter
));
}
}
// flush functions
// flush functions
SPDLOG_INLINE
void
logger
::
flush
()
SPDLOG_INLINE
void
logger
::
flush
()
{
{
try
try
{
{
flush_
();
flush_
();
...
@@ -153,46 +149,46 @@ namespace spdlog {
...
@@ -153,46 +149,46 @@ namespace spdlog {
{
{
err_handler_
(
"Unknown exception in logger"
);
err_handler_
(
"Unknown exception in logger"
);
}
}
}
}
SPDLOG_INLINE
void
logger
::
flush_on
(
level
::
level_enum
log_level
)
SPDLOG_INLINE
void
logger
::
flush_on
(
level
::
level_enum
log_level
)
{
{
flush_level_
.
store
(
log_level
);
flush_level_
.
store
(
log_level
);
}
}
SPDLOG_INLINE
level
::
level_enum
logger
::
flush_level
()
const
SPDLOG_INLINE
level
::
level_enum
logger
::
flush_level
()
const
{
{
return
static_cast
<
level
::
level_enum
>
(
flush_level_
.
load
(
std
::
memory_order_relaxed
));
return
static_cast
<
level
::
level_enum
>
(
flush_level_
.
load
(
std
::
memory_order_relaxed
));
}
}
// sinks
// sinks
SPDLOG_INLINE
const
std
::
vector
<
sink_ptr
>
&
logger
::
sinks
()
const
SPDLOG_INLINE
const
std
::
vector
<
sink_ptr
>
&
logger
::
sinks
()
const
{
{
return
sinks_
;
return
sinks_
;
}
}
SPDLOG_INLINE
std
::
vector
<
sink_ptr
>
&
logger
::
sinks
()
SPDLOG_INLINE
std
::
vector
<
sink_ptr
>
&
logger
::
sinks
()
{
{
return
sinks_
;
return
sinks_
;
}
}
// error handler
// error handler
SPDLOG_INLINE
void
logger
::
set_error_handler
(
err_handler
handler
)
SPDLOG_INLINE
void
logger
::
set_error_handler
(
err_handler
handler
)
{
{
custom_err_handler_
=
handler
;
custom_err_handler_
=
handler
;
}
}
// create new logger with same sinks and configuration.
// create new logger with same sinks and configuration.
SPDLOG_INLINE
std
::
shared_ptr
<
logger
>
logger
::
clone
(
std
::
string
logger_name
)
SPDLOG_INLINE
std
::
shared_ptr
<
logger
>
logger
::
clone
(
std
::
string
logger_name
)
{
{
auto
cloned
=
std
::
make_shared
<
logger
>
(
*
this
);
auto
cloned
=
std
::
make_shared
<
logger
>
(
*
this
);
cloned
->
name_
=
std
::
move
(
logger_name
);
cloned
->
name_
=
std
::
move
(
logger_name
);
return
cloned
;
return
cloned
;
}
}
// protected methods
// protected methods
SPDLOG_INLINE
void
logger
::
sink_it_
(
details
::
log_msg
&
msg
)
SPDLOG_INLINE
void
logger
::
sink_it_
(
details
::
log_msg
&
msg
)
{
{
for
(
auto
&
sink
:
sinks_
)
for
(
auto
&
sink
:
sinks_
)
{
{
if
(
sink
->
should_log
(
msg
.
level
))
if
(
sink
->
should_log
(
msg
.
level
))
...
@@ -205,24 +201,24 @@ namespace spdlog {
...
@@ -205,24 +201,24 @@ namespace spdlog {
{
{
flush_
();
flush_
();
}
}
}
}
SPDLOG_INLINE
void
logger
::
flush_
()
SPDLOG_INLINE
void
logger
::
flush_
()
{
{
for
(
auto
&
sink
:
sinks_
)
for
(
auto
&
sink
:
sinks_
)
{
{
sink
->
flush
();
sink
->
flush
();
}
}
}
}
SPDLOG_INLINE
bool
logger
::
should_flush_
(
const
details
::
log_msg
&
msg
)
SPDLOG_INLINE
bool
logger
::
should_flush_
(
const
details
::
log_msg
&
msg
)
{
{
auto
flush_level
=
flush_level_
.
load
(
std
::
memory_order_relaxed
);
auto
flush_level
=
flush_level_
.
load
(
std
::
memory_order_relaxed
);
return
(
msg
.
level
>=
flush_level
)
&&
(
msg
.
level
!=
level
::
off
);
return
(
msg
.
level
>=
flush_level
)
&&
(
msg
.
level
!=
level
::
off
);
}
}
SPDLOG_INLINE
void
logger
::
err_handler_
(
const
std
::
string
&
msg
)
SPDLOG_INLINE
void
logger
::
err_handler_
(
const
std
::
string
&
msg
)
{
{
if
(
custom_err_handler_
)
if
(
custom_err_handler_
)
{
{
custom_err_handler_
(
msg
);
custom_err_handler_
(
msg
);
...
@@ -234,5 +230,5 @@ namespace spdlog {
...
@@ -234,5 +230,5 @@ namespace spdlog {
std
::
strftime
(
date_buf
,
sizeof
(
date_buf
),
"%Y-%m-%d %H:%M:%S"
,
&
tm_time
);
std
::
strftime
(
date_buf
,
sizeof
(
date_buf
),
"%Y-%m-%d %H:%M:%S"
,
&
tm_time
);
fmt
::
print
(
stderr
,
"[*** LOG ERROR ***] [{}] [{}] {}
\n
"
,
date_buf
,
name
(),
msg
);
fmt
::
print
(
stderr
,
"[*** LOG ERROR ***] [{}] [{}] {}
\n
"
,
date_buf
,
name
(),
msg
);
}
}
}
}
}
// namespace spdlog
}
// namespace spdlog
\ No newline at end of file
include/spdlog/logger.h
View file @
78c833a0
...
@@ -346,11 +346,10 @@ protected:
...
@@ -346,11 +346,10 @@ protected:
void
err_handler_
(
const
std
::
string
&
msg
);
void
err_handler_
(
const
std
::
string
&
msg
);
};
};
void
swap
(
logger
&
a
,
logger
&
b
);
void
swap
(
logger
&
a
,
logger
&
b
);
}
// namespace spdlog
}
// namespace spdlog
#ifdef SPDLOG_HEADER_ONLY
#ifdef SPDLOG_HEADER_ONLY
#include "logger-inl.h"
#include "logger-inl.h"
#endif
#endif
include/spdlog/sinks/ansicolor_sink.h
View file @
78c833a0
...
@@ -25,7 +25,7 @@ class ansicolor_sink : public sink
...
@@ -25,7 +25,7 @@ class ansicolor_sink : public sink
{
{
public
:
public
:
using
mutex_t
=
typename
ConsoleMutex
::
mutex_t
;
using
mutex_t
=
typename
ConsoleMutex
::
mutex_t
;
ansicolor_sink
(
FILE
*
target_file
,
color_mode
mode
);
ansicolor_sink
(
FILE
*
target_file
,
color_mode
mode
);
~
ansicolor_sink
()
override
=
default
;
~
ansicolor_sink
()
override
=
default
;
ansicolor_sink
(
const
ansicolor_sink
&
other
)
=
delete
;
ansicolor_sink
(
const
ansicolor_sink
&
other
)
=
delete
;
...
@@ -77,7 +77,6 @@ private:
...
@@ -77,7 +77,6 @@ private:
void
print_range_
(
const
fmt
::
memory_buffer
&
formatted
,
size_t
start
,
size_t
end
);
void
print_range_
(
const
fmt
::
memory_buffer
&
formatted
,
size_t
start
,
size_t
end
);
};
};
template
<
typename
ConsoleMutex
>
template
<
typename
ConsoleMutex
>
class
ansicolor_stdout_sink
:
public
ansicolor_sink
<
ConsoleMutex
>
class
ansicolor_stdout_sink
:
public
ansicolor_sink
<
ConsoleMutex
>
{
{
...
@@ -92,7 +91,6 @@ public:
...
@@ -92,7 +91,6 @@ public:
explicit
ansicolor_stderr_sink
(
color_mode
mode
=
color_mode
::
automatic
);
explicit
ansicolor_stderr_sink
(
color_mode
mode
=
color_mode
::
automatic
);
};
};
using
ansicolor_stdout_sink_mt
=
ansicolor_stdout_sink
<
details
::
console_mutex
>
;
using
ansicolor_stdout_sink_mt
=
ansicolor_stdout_sink
<
details
::
console_mutex
>
;
using
ansicolor_stdout_sink_st
=
ansicolor_stdout_sink
<
details
::
console_nullmutex
>
;
using
ansicolor_stdout_sink_st
=
ansicolor_stdout_sink
<
details
::
console_nullmutex
>
;
...
...
include/spdlog/sinks/wincolor_sink-inl.h
View file @
78c833a0
...
@@ -125,7 +125,6 @@ void SPDLOG_INLINE wincolor_sink<ConsoleMutex>::print_range_(const fmt::memory_b
...
@@ -125,7 +125,6 @@ void SPDLOG_INLINE wincolor_sink<ConsoleMutex>::print_range_(const fmt::memory_b
::
WriteConsoleA
(
out_handle_
,
formatted
.
data
()
+
start
,
size
,
nullptr
,
nullptr
);
::
WriteConsoleA
(
out_handle_
,
formatted
.
data
()
+
start
,
size
,
nullptr
,
nullptr
);
}
}
// wincolor_stdout_sink
// wincolor_stdout_sink
template
<
typename
ConsoleMutex
>
template
<
typename
ConsoleMutex
>
SPDLOG_INLINE
wincolor_stdout_sink
<
ConsoleMutex
>::
wincolor_stdout_sink
(
color_mode
mode
)
SPDLOG_INLINE
wincolor_stdout_sink
<
ConsoleMutex
>::
wincolor_stdout_sink
(
color_mode
mode
)
...
@@ -138,6 +137,5 @@ SPDLOG_INLINE wincolor_stderr_sink<ConsoleMutex>::wincolor_stderr_sink(color_mod
...
@@ -138,6 +137,5 @@ SPDLOG_INLINE wincolor_stderr_sink<ConsoleMutex>::wincolor_stderr_sink(color_mod
:
wincolor_sink
<
ConsoleMutex
>
(
::
GetStdHandle
(
STD_ERROR_HANDLE
),
mode
)
:
wincolor_sink
<
ConsoleMutex
>
(
::
GetStdHandle
(
STD_ERROR_HANDLE
),
mode
)
{}
{}
}
// namespace sinks
}
// namespace sinks
}
// namespace spdlog
}
// namespace spdlog
\ No newline at end of file
include/spdlog/sinks/wincolor_sink.h
View file @
78c833a0
tests/test_pattern_formatter.cpp
View file @
78c833a0
...
@@ -264,14 +264,12 @@ static const char *test_path = "\\a\\b\\myfile.cpp";
...
@@ -264,14 +264,12 @@ static const char *test_path = "\\a\\b\\myfile.cpp";
static
const
char
*
test_path
=
"/a/b//myfile.cpp"
;
static
const
char
*
test_path
=
"/a/b//myfile.cpp"
;
#endif
#endif
TEST_CASE
(
"short filename formatter-1"
,
"[pattern_formatter]"
)
TEST_CASE
(
"short filename formatter-1"
,
"[pattern_formatter]"
)
{
{
spdlog
::
pattern_formatter
formatter
(
"%s"
,
spdlog
::
pattern_time_type
::
local
,
""
);
spdlog
::
pattern_formatter
formatter
(
"%s"
,
spdlog
::
pattern_time_type
::
local
,
""
);
fmt
::
memory_buffer
formatted
;
fmt
::
memory_buffer
formatted
;
std
::
string
logger_name
=
"logger-name"
;
std
::
string
logger_name
=
"logger-name"
;
spdlog
::
source_loc
source_loc
{
test_path
,
123
,
"some_func()"
};
spdlog
::
source_loc
source_loc
{
test_path
,
123
,
"some_func()"
};
spdlog
::
details
::
log_msg
msg
(
source_loc
,
"logger-name"
,
spdlog
::
level
::
info
,
"Hello"
);
spdlog
::
details
::
log_msg
msg
(
source_loc
,
"logger-name"
,
spdlog
::
level
::
info
,
"Hello"
);
formatter
.
format
(
msg
,
formatted
);
formatter
.
format
(
msg
,
formatted
);
REQUIRE
(
fmt
::
to_string
(
formatted
)
==
"myfile.cpp"
);
REQUIRE
(
fmt
::
to_string
(
formatted
)
==
"myfile.cpp"
);
...
@@ -304,9 +302,8 @@ TEST_CASE("full filename formatter", "[pattern_formatter]")
...
@@ -304,9 +302,8 @@ TEST_CASE("full filename formatter", "[pattern_formatter]")
spdlog
::
pattern_formatter
formatter
(
"%g"
,
spdlog
::
pattern_time_type
::
local
,
""
);
spdlog
::
pattern_formatter
formatter
(
"%g"
,
spdlog
::
pattern_time_type
::
local
,
""
);
fmt
::
memory_buffer
formatted
;
fmt
::
memory_buffer
formatted
;
std
::
string
logger_name
=
"logger-name"
;
std
::
string
logger_name
=
"logger-name"
;
spdlog
::
source_loc
source_loc
{
test_path
,
123
,
"some_func()"
};
spdlog
::
source_loc
source_loc
{
test_path
,
123
,
"some_func()"
};
spdlog
::
details
::
log_msg
msg
(
source_loc
,
"logger-name"
,
spdlog
::
level
::
info
,
"Hello"
);
spdlog
::
details
::
log_msg
msg
(
source_loc
,
"logger-name"
,
spdlog
::
level
::
info
,
"Hello"
);
formatter
.
format
(
msg
,
formatted
);
formatter
.
format
(
msg
,
formatted
);
REQUIRE
(
fmt
::
to_string
(
formatted
)
==
test_path
);
REQUIRE
(
fmt
::
to_string
(
formatted
)
==
test_path
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment