Skip to content

Conversation

@lefi7z
Copy link

@lefi7z lefi7z commented Aug 11, 2019

The function clog_info (/_debug/..) is now replaced by
a variadic macro that "knows" the linenumber where it is.
This change is due, because the dependency on va_copy
already kind of enforces the use of C99 or later.

This very much simplifies the use of the logger:
Instead of typing
clog_info(CLOG(my_logger_id), "Hello, %s!", "world");
if suffices to pass the logger id:
clog_info(my_logger_id, "Hello, %s!", "world");

The replacement depends on the C/C++ version used
(variadic macros are part of the standard since C99/C++11).
The preprocessor checks for the version and defines the
macro if applicable.

This is backwards compatible, because if the macros are
defined, then CLOG(id) is defined as the identity function
doing nothing.

lefi7z added 2 commits August 11, 2019 19:15
The function clog_info (/_debug/..) is now replaced by
a variadic macro that "knows" the linenumber where it is.
This change is due, because the dependency on `va_copy`
already kind of enforces the use of C99 or later.

This very much simplifies the use of the logger:
Instead of typing
  clog_info(CLOG(my_logger_id), "Hello, %s!", "world");
if suffices to pass the logger id:
  clog_info(my_logger_id, "Hello, %s!", "world");

The replacement depends on the C/C++ version used
(variadic macros are part of the standard since C99/C++11).
The preprocessor checks for the version and defines the
macro if applicable.

This is backwards compatible, because if the macros are
defined, then CLOG(id) is defined as the identity function
doing nothing.
This should make it platform independent and
just as well usable on windows.

TODO: This broke the test cases!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant