diff --git a/README.md b/README.md index 33e1b52..2db7c08 100644 --- a/README.md +++ b/README.md @@ -4,16 +4,16 @@ Nestlog is a lightweight header-only library for console logging. ## Examples +### 1 + /* examples/ex1/ex1.cpp */ #include "nestlog/scope.hpp" - using namespace xo; - void A(int x) { - XO_SCOPE(log) // i.e. xo::scope log("A"); + XO_SCOPE(log); // i.e. xo::scope log("A"); - log(":x ", x); + log("enter ", ":x ", x); } int @@ -24,5 +24,65 @@ Nestlog is a lightweight header-only library for console logging. output: +A - :x 66 + enter :x 66 -A + +### 2 + + /* examples ex2/ex2.cpp */ + + #include "nestlog/scope.hpp" + + int fib(int n) { + XO_SCOPE(log); + + int retval = 1; + + if (n >= 2) + retval = fib(n - 1) + fib(n - 2); + + log("result ", ":retval ", retval); + } + + int + main(int argc, char ** argv) { + XO_SCOPE(log); + + int n = 4; + int fn = fib(n); + + log(":n ", n, " :fib(n) ", fn); + } + +output: + + +main + +fib + +fib + +fib + +fib + result :retval 1 + -fib + +fib + result :retval 1 + -fib + result :retval 2 + -fib + +fib + result :retval 1 + -fib + result :retval 3 + -fib + +fib + +fib + result :retval 1 + -fib + +fib + result :retval 1 + -fib + result :retval 2 + -fib + result :retval 5 + -fib + :n 4 :fib(n) 5 + -main diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index ac2655a..8a901a2 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -8,6 +8,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "") #include(cmake/FindSphinx.cmake) add_subdirectory(ex1) +add_subdirectory(ex2) # ---------------------------------------------------------------- # make standard directories for std:: includes explicit diff --git a/example/ex2/CMakeLists.txt b/example/ex2/CMakeLists.txt new file mode 100644 index 0000000..76ae6f6 --- /dev/null +++ b/example/ex2/CMakeLists.txt @@ -0,0 +1,3 @@ +add_executable(ex2 ex2.cpp) + +target_include_directories(ex2 PUBLIC ${PROJECT_SOURCE_DIR}/include) diff --git a/example/ex2/ex2.cpp b/example/ex2/ex2.cpp new file mode 100644 index 0000000..6267c04 --- /dev/null +++ b/example/ex2/ex2.cpp @@ -0,0 +1,27 @@ +/* examples ex2/ex2.cpp */ + +#include "nestlog/scope.hpp" + +int +fib(int n) { + XO_SCOPE(log); + + int retval = 1; + + if (n >= 2) + retval = fib(n - 1) + fib(n - 2); + + log("result ", ":retval ", retval); + + return retval; +} + +int +main(int argc, char ** argv) { + XO_SCOPE(log); + + int n = 4; + int fn = fib(n); + + log(":n ", n, " :fib(n) ", fn); +}