├── .clang-format ├── .devcontainer └── devcontainer.json ├── .gitattributes ├── .github └── workflows │ └── cmake.yml ├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── README.md ├── examples ├── .clang-format ├── CMakeLists.txt ├── listing_1.cpp ├── listing_2.cpp └── listing_3.cpp ├── include └── std23 │ ├── __functional_base.h │ ├── function.h │ ├── function_ref.h │ └── move_only_function.h └── tests ├── CMakeLists.txt ├── function ├── CMakeLists.txt ├── common_callables.cpp ├── common_callables.h ├── main.cpp ├── test_basics.cpp ├── test_ctad.cpp ├── test_nontype.cpp ├── test_nullable.cpp ├── test_reference_semantics.cpp └── test_value_semantics.cpp ├── function_ref ├── CMakeLists.txt ├── common_callables.cpp ├── common_callables.h ├── main.cpp ├── test_basics.cpp ├── test_call_pattern.cpp ├── test_const.cpp ├── test_const_noexcept.cpp ├── test_constexpr.cpp ├── test_constinit.cpp ├── test_ctad.cpp ├── test_noexcept.cpp ├── test_nontype.cpp ├── test_return_reference.cpp └── test_safety.cpp ├── include └── boost │ └── ut.hpp └── move_only_function ├── CMakeLists.txt ├── common_callables.cpp ├── common_callables.h ├── main.cpp ├── test_basics.cpp ├── test_cvref.cpp ├── test_inplace.cpp ├── test_noexcept.cpp ├── test_nontype.cpp ├── test_nullable.cpp ├── test_reference_semantics.cpp ├── test_return_reference.cpp ├── test_unique.cpp └── test_value_semantics.cpp /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/.clang-format -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | {"image":"mcr.microsoft.com/devcontainers/cpp:ubuntu-20.04"} -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/workflows/cmake.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/.github/workflows/cmake.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/.gitignore -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/README.md -------------------------------------------------------------------------------- /examples/.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | BasedOnStyle: InheritParentConfig 3 | ColumnLimit: '70' -------------------------------------------------------------------------------- /examples/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/examples/CMakeLists.txt -------------------------------------------------------------------------------- /examples/listing_1.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/examples/listing_1.cpp -------------------------------------------------------------------------------- /examples/listing_2.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/examples/listing_2.cpp -------------------------------------------------------------------------------- /examples/listing_3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/examples/listing_3.cpp -------------------------------------------------------------------------------- /include/std23/__functional_base.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/include/std23/__functional_base.h -------------------------------------------------------------------------------- /include/std23/function.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/include/std23/function.h -------------------------------------------------------------------------------- /include/std23/function_ref.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/include/std23/function_ref.h -------------------------------------------------------------------------------- /include/std23/move_only_function.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/include/std23/move_only_function.h -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/CMakeLists.txt -------------------------------------------------------------------------------- /tests/function/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function/CMakeLists.txt -------------------------------------------------------------------------------- /tests/function/common_callables.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function/common_callables.cpp -------------------------------------------------------------------------------- /tests/function/common_callables.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function/common_callables.h -------------------------------------------------------------------------------- /tests/function/main.cpp: -------------------------------------------------------------------------------- 1 | int main() 2 | {} -------------------------------------------------------------------------------- /tests/function/test_basics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function/test_basics.cpp -------------------------------------------------------------------------------- /tests/function/test_ctad.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function/test_ctad.cpp -------------------------------------------------------------------------------- /tests/function/test_nontype.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function/test_nontype.cpp -------------------------------------------------------------------------------- /tests/function/test_nullable.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function/test_nullable.cpp -------------------------------------------------------------------------------- /tests/function/test_reference_semantics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function/test_reference_semantics.cpp -------------------------------------------------------------------------------- /tests/function/test_value_semantics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function/test_value_semantics.cpp -------------------------------------------------------------------------------- /tests/function_ref/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/CMakeLists.txt -------------------------------------------------------------------------------- /tests/function_ref/common_callables.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/common_callables.cpp -------------------------------------------------------------------------------- /tests/function_ref/common_callables.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/common_callables.h -------------------------------------------------------------------------------- /tests/function_ref/main.cpp: -------------------------------------------------------------------------------- 1 | int main() 2 | {} 3 | -------------------------------------------------------------------------------- /tests/function_ref/test_basics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_basics.cpp -------------------------------------------------------------------------------- /tests/function_ref/test_call_pattern.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_call_pattern.cpp -------------------------------------------------------------------------------- /tests/function_ref/test_const.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_const.cpp -------------------------------------------------------------------------------- /tests/function_ref/test_const_noexcept.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_const_noexcept.cpp -------------------------------------------------------------------------------- /tests/function_ref/test_constexpr.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_constexpr.cpp -------------------------------------------------------------------------------- /tests/function_ref/test_constinit.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_constinit.cpp -------------------------------------------------------------------------------- /tests/function_ref/test_ctad.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_ctad.cpp -------------------------------------------------------------------------------- /tests/function_ref/test_noexcept.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_noexcept.cpp -------------------------------------------------------------------------------- /tests/function_ref/test_nontype.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_nontype.cpp -------------------------------------------------------------------------------- /tests/function_ref/test_return_reference.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_return_reference.cpp -------------------------------------------------------------------------------- /tests/function_ref/test_safety.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/function_ref/test_safety.cpp -------------------------------------------------------------------------------- /tests/include/boost/ut.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/include/boost/ut.hpp -------------------------------------------------------------------------------- /tests/move_only_function/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/CMakeLists.txt -------------------------------------------------------------------------------- /tests/move_only_function/common_callables.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/common_callables.cpp -------------------------------------------------------------------------------- /tests/move_only_function/common_callables.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/common_callables.h -------------------------------------------------------------------------------- /tests/move_only_function/main.cpp: -------------------------------------------------------------------------------- 1 | int main() 2 | {} -------------------------------------------------------------------------------- /tests/move_only_function/test_basics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/test_basics.cpp -------------------------------------------------------------------------------- /tests/move_only_function/test_cvref.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/test_cvref.cpp -------------------------------------------------------------------------------- /tests/move_only_function/test_inplace.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/test_inplace.cpp -------------------------------------------------------------------------------- /tests/move_only_function/test_noexcept.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/test_noexcept.cpp -------------------------------------------------------------------------------- /tests/move_only_function/test_nontype.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/test_nontype.cpp -------------------------------------------------------------------------------- /tests/move_only_function/test_nullable.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/test_nullable.cpp -------------------------------------------------------------------------------- /tests/move_only_function/test_reference_semantics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/test_reference_semantics.cpp -------------------------------------------------------------------------------- /tests/move_only_function/test_return_reference.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/test_return_reference.cpp -------------------------------------------------------------------------------- /tests/move_only_function/test_unique.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/test_unique.cpp -------------------------------------------------------------------------------- /tests/move_only_function/test_value_semantics.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhihaoy/nontype_functional/HEAD/tests/move_only_function/test_value_semantics.cpp --------------------------------------------------------------------------------