v46 with coroutines and fixes

v46 implements experimental support for coroutines and fixes output for input-range like types

  • Experimental support for coroutines. Use CO_RETURN (or LR_CO_RETURN) for a member function that has a coroutine return type. Use CO_THROW (or LR_CO_THROW) to throw from a coroutine. Use as many CO_YIELD (or LR_CO_YIELD) from a coroutine function as you like, as long as the promise type supports it.

    The experimental support must be explicitly enabled with

      #define TROMPELOEIL_EXPERIMENTAL_COROUTINES
      #include <trompeloeil.hpp>
    

    trompeloeil::stream_tracer does not produce correct result for coroutines

  • Corrected output of input-range like types. Thank you Dominic Koepke for the fix.

  • The self test program “custom_recursive_mutex” now says that it’s succeeded. Thank you @yurivict for reporting the confusion.

  • Self test programs are only build when explicitly setting -DTROMPELOEIL_BUILD_TESTS=yes to the CMake command line.

  • The self test programs require a higher version of CMake (3.19 currently)

Updated: