├── .clang-format ├── .gitignore ├── 3rdparty └── catch2 │ ├── Catch.cmake │ ├── CatchAddTests.cmake │ ├── ParseAndAddCatchTests.cmake │ └── catch.hpp ├── CMakeLists.txt ├── LICENSE ├── README.md ├── benchmarks ├── CMakeLists.txt ├── filterable │ ├── benchmark_filter_std_containers.cpp │ └── benchmark_filter_std_ranges.cpp ├── functor │ ├── benchmark_map_std_containers.cpp │ └── benchmark_map_std_ranges.cpp └── helpers │ ├── benchmark_main.cpp │ └── expensive.h ├── cmake └── cefal-config.cmake ├── include └── cefal │ ├── cefal │ ├── common.h │ ├── converter.h │ ├── detail │ ├── common_concepts.h │ ├── instantiator.h │ └── std_concepts.h │ ├── everything.h │ ├── filterable.h │ ├── foldable.h │ ├── functor.h │ ├── helpers │ ├── inner_type.h │ ├── nums.h │ ├── std_containers.h │ └── std_ranges.h │ ├── instances │ ├── converter │ │ ├── from_self.h │ │ ├── from_std_containers.h │ │ └── from_std_optional.h │ ├── filterable │ │ ├── from_foldable.h │ │ ├── std_optional.h │ │ ├── std_ranges.h │ │ └── with_functions.h │ ├── foldable │ │ ├── std_containers.h │ │ ├── std_ranges.h │ │ └── with_functions.h │ ├── functor │ │ ├── from_foldable.h │ │ ├── std_optional.h │ │ ├── std_ranges.h │ │ └── with_functions.h │ ├── monad │ │ ├── from_foldable.h │ │ ├── std_optional.h │ │ └── with_functions.h │ └── monoid │ │ ├── basic_types.h │ │ ├── std_containers.h │ │ ├── std_optional.h │ │ └── with_functions.h │ ├── monad.h │ └── monoid.h ├── src └── dummy.cpp └── tests ├── CMakeLists.txt ├── converter ├── test_from_self.cpp ├── test_from_std_containers.cpp └── test_from_std_optional.cpp ├── filterable ├── test_from_foldable.cpp ├── test_std_optional.cpp ├── test_std_ranges.cpp └── test_with_functions.cpp ├── foldable ├── test_std_containers.cpp ├── test_std_ranges.cpp └── test_with_functions.cpp ├── functor ├── test_from_foldable.cpp ├── test_std_optional.cpp ├── test_std_ranges.cpp └── test_with_functions.cpp ├── helpers ├── counter.h ├── ranges_helpers.h ├── test_helpers.h └── test_main.cpp ├── monad ├── test_from_foldable.cpp ├── test_std_optional.cpp └── test_with_functions.cpp └── monoid ├── test_basic_types.cpp ├── test_std_containers.cpp ├── test_std_optional.cpp └── test_with_functions.cpp /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/.clang-format -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/.gitignore -------------------------------------------------------------------------------- /3rdparty/catch2/Catch.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/3rdparty/catch2/Catch.cmake -------------------------------------------------------------------------------- /3rdparty/catch2/CatchAddTests.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/3rdparty/catch2/CatchAddTests.cmake -------------------------------------------------------------------------------- /3rdparty/catch2/ParseAndAddCatchTests.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/3rdparty/catch2/ParseAndAddCatchTests.cmake -------------------------------------------------------------------------------- /3rdparty/catch2/catch.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/3rdparty/catch2/catch.hpp -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/README.md -------------------------------------------------------------------------------- /benchmarks/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/benchmarks/CMakeLists.txt -------------------------------------------------------------------------------- /benchmarks/filterable/benchmark_filter_std_containers.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/benchmarks/filterable/benchmark_filter_std_containers.cpp -------------------------------------------------------------------------------- /benchmarks/filterable/benchmark_filter_std_ranges.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/benchmarks/filterable/benchmark_filter_std_ranges.cpp -------------------------------------------------------------------------------- /benchmarks/functor/benchmark_map_std_containers.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/benchmarks/functor/benchmark_map_std_containers.cpp -------------------------------------------------------------------------------- /benchmarks/functor/benchmark_map_std_ranges.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/benchmarks/functor/benchmark_map_std_ranges.cpp -------------------------------------------------------------------------------- /benchmarks/helpers/benchmark_main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/benchmarks/helpers/benchmark_main.cpp -------------------------------------------------------------------------------- /benchmarks/helpers/expensive.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/benchmarks/helpers/expensive.h -------------------------------------------------------------------------------- /cmake/cefal-config.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/cmake/cefal-config.cmake -------------------------------------------------------------------------------- /include/cefal/cefal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/cefal -------------------------------------------------------------------------------- /include/cefal/common.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/common.h -------------------------------------------------------------------------------- /include/cefal/converter.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/converter.h -------------------------------------------------------------------------------- /include/cefal/detail/common_concepts.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/detail/common_concepts.h -------------------------------------------------------------------------------- /include/cefal/detail/instantiator.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/detail/instantiator.h -------------------------------------------------------------------------------- /include/cefal/detail/std_concepts.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/detail/std_concepts.h -------------------------------------------------------------------------------- /include/cefal/everything.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/everything.h -------------------------------------------------------------------------------- /include/cefal/filterable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/filterable.h -------------------------------------------------------------------------------- /include/cefal/foldable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/foldable.h -------------------------------------------------------------------------------- /include/cefal/functor.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/functor.h -------------------------------------------------------------------------------- /include/cefal/helpers/inner_type.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/helpers/inner_type.h -------------------------------------------------------------------------------- /include/cefal/helpers/nums.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/helpers/nums.h -------------------------------------------------------------------------------- /include/cefal/helpers/std_containers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/helpers/std_containers.h -------------------------------------------------------------------------------- /include/cefal/helpers/std_ranges.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/helpers/std_ranges.h -------------------------------------------------------------------------------- /include/cefal/instances/converter/from_self.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/converter/from_self.h -------------------------------------------------------------------------------- /include/cefal/instances/converter/from_std_containers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/converter/from_std_containers.h -------------------------------------------------------------------------------- /include/cefal/instances/converter/from_std_optional.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/converter/from_std_optional.h -------------------------------------------------------------------------------- /include/cefal/instances/filterable/from_foldable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/filterable/from_foldable.h -------------------------------------------------------------------------------- /include/cefal/instances/filterable/std_optional.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/filterable/std_optional.h -------------------------------------------------------------------------------- /include/cefal/instances/filterable/std_ranges.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/filterable/std_ranges.h -------------------------------------------------------------------------------- /include/cefal/instances/filterable/with_functions.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/filterable/with_functions.h -------------------------------------------------------------------------------- /include/cefal/instances/foldable/std_containers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/foldable/std_containers.h -------------------------------------------------------------------------------- /include/cefal/instances/foldable/std_ranges.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/foldable/std_ranges.h -------------------------------------------------------------------------------- /include/cefal/instances/foldable/with_functions.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/foldable/with_functions.h -------------------------------------------------------------------------------- /include/cefal/instances/functor/from_foldable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/functor/from_foldable.h -------------------------------------------------------------------------------- /include/cefal/instances/functor/std_optional.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/functor/std_optional.h -------------------------------------------------------------------------------- /include/cefal/instances/functor/std_ranges.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/functor/std_ranges.h -------------------------------------------------------------------------------- /include/cefal/instances/functor/with_functions.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/functor/with_functions.h -------------------------------------------------------------------------------- /include/cefal/instances/monad/from_foldable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/monad/from_foldable.h -------------------------------------------------------------------------------- /include/cefal/instances/monad/std_optional.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/monad/std_optional.h -------------------------------------------------------------------------------- /include/cefal/instances/monad/with_functions.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/monad/with_functions.h -------------------------------------------------------------------------------- /include/cefal/instances/monoid/basic_types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/monoid/basic_types.h -------------------------------------------------------------------------------- /include/cefal/instances/monoid/std_containers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/monoid/std_containers.h -------------------------------------------------------------------------------- /include/cefal/instances/monoid/std_optional.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/monoid/std_optional.h -------------------------------------------------------------------------------- /include/cefal/instances/monoid/with_functions.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/instances/monoid/with_functions.h -------------------------------------------------------------------------------- /include/cefal/monad.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/monad.h -------------------------------------------------------------------------------- /include/cefal/monoid.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/include/cefal/monoid.h -------------------------------------------------------------------------------- /src/dummy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/src/dummy.cpp -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/CMakeLists.txt -------------------------------------------------------------------------------- /tests/converter/test_from_self.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/converter/test_from_self.cpp -------------------------------------------------------------------------------- /tests/converter/test_from_std_containers.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/converter/test_from_std_containers.cpp -------------------------------------------------------------------------------- /tests/converter/test_from_std_optional.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/converter/test_from_std_optional.cpp -------------------------------------------------------------------------------- /tests/filterable/test_from_foldable.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/filterable/test_from_foldable.cpp -------------------------------------------------------------------------------- /tests/filterable/test_std_optional.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/filterable/test_std_optional.cpp -------------------------------------------------------------------------------- /tests/filterable/test_std_ranges.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/filterable/test_std_ranges.cpp -------------------------------------------------------------------------------- /tests/filterable/test_with_functions.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/filterable/test_with_functions.cpp -------------------------------------------------------------------------------- /tests/foldable/test_std_containers.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/foldable/test_std_containers.cpp -------------------------------------------------------------------------------- /tests/foldable/test_std_ranges.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/foldable/test_std_ranges.cpp -------------------------------------------------------------------------------- /tests/foldable/test_with_functions.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/foldable/test_with_functions.cpp -------------------------------------------------------------------------------- /tests/functor/test_from_foldable.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/functor/test_from_foldable.cpp -------------------------------------------------------------------------------- /tests/functor/test_std_optional.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/functor/test_std_optional.cpp -------------------------------------------------------------------------------- /tests/functor/test_std_ranges.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/functor/test_std_ranges.cpp -------------------------------------------------------------------------------- /tests/functor/test_with_functions.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/functor/test_with_functions.cpp -------------------------------------------------------------------------------- /tests/helpers/counter.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/helpers/counter.h -------------------------------------------------------------------------------- /tests/helpers/ranges_helpers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/helpers/ranges_helpers.h -------------------------------------------------------------------------------- /tests/helpers/test_helpers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/helpers/test_helpers.h -------------------------------------------------------------------------------- /tests/helpers/test_main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/helpers/test_main.cpp -------------------------------------------------------------------------------- /tests/monad/test_from_foldable.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/monad/test_from_foldable.cpp -------------------------------------------------------------------------------- /tests/monad/test_std_optional.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/monad/test_std_optional.cpp -------------------------------------------------------------------------------- /tests/monad/test_with_functions.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/monad/test_with_functions.cpp -------------------------------------------------------------------------------- /tests/monoid/test_basic_types.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/monoid/test_basic_types.cpp -------------------------------------------------------------------------------- /tests/monoid/test_std_containers.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/monoid/test_std_containers.cpp -------------------------------------------------------------------------------- /tests/monoid/test_std_optional.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/monoid/test_std_optional.cpp -------------------------------------------------------------------------------- /tests/monoid/test_with_functions.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dkormalev/cefal/HEAD/tests/monoid/test_with_functions.cpp --------------------------------------------------------------------------------