├── .clang-format ├── .gitattributes ├── .github └── workflows │ ├── test_clang_linux.yml │ ├── test_clang_mac.yml │ ├── test_clang_win.yml │ ├── test_gcc_linux.yml │ ├── test_gcc_win.yml │ └── test_msvc_win.yml ├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── README.md ├── cmake └── tiny-optionalConfig.cmake.in ├── include ├── tiny │ ├── optional.h │ └── optional_flag_manipulator_fwd.h └── tiny_optional.natvis ├── performance ├── main.cpp ├── makefile ├── performance.sln ├── performance.vcxproj ├── performance.vcxproj.filters ├── plot.plt ├── results_absolute.png ├── results_clang.dat ├── results_gcc.dat ├── results_msvc.dat └── results_relative.png └── tests ├── ComparisonTests.cpp ├── ComparisonTests.h ├── CompilationBase.cpp ├── CompilationBase.h ├── CompilationErrorTests.cpp ├── CompilationErrorTests.h ├── ConstructionTests.cpp ├── ConstructionTests.h ├── ExerciseOptionalAIP.cpp ├── ExerciseOptionalAIP.h ├── ExerciseOptionalEmptyViaType.cpp ├── ExerciseOptionalEmptyViaType.h ├── ExerciseOptionalInplace.cpp ├── ExerciseOptionalInplace.h ├── ExerciseOptionalWithCustomFlagManipulator.cpp ├── ExerciseOptionalWithCustomFlagManipulator.h ├── ExerciseStdOptional.cpp ├── ExerciseStdOptional.h ├── ExerciseTinyOptionalPayload.h ├── ExerciseTinyOptionalPayload1.cpp ├── ExerciseTinyOptionalPayload2.cpp ├── Exercises.h ├── GccLikeCompilation.cpp ├── GccLikeCompilation.h ├── IntermediateTests.cpp ├── IntermediateTests.h ├── MsvcCompilation.cpp ├── MsvcCompilation.h ├── NatvisTests.cpp ├── NatvisTests.h ├── SpecialMonadicTests.cpp ├── SpecialMonadicTests.h ├── TestTypes.h ├── TestUtilities.cpp ├── TestUtilities.h ├── Tests.cpp ├── Tests.vcxproj ├── Tests.vcxproj.filters ├── make_win_clang.ps1 ├── make_win_gcclike.ps1 ├── makefile └── tiny-optional.sln /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/.clang-format -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * -text 2 | -------------------------------------------------------------------------------- /.github/workflows/test_clang_linux.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/.github/workflows/test_clang_linux.yml -------------------------------------------------------------------------------- /.github/workflows/test_clang_mac.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/.github/workflows/test_clang_mac.yml -------------------------------------------------------------------------------- /.github/workflows/test_clang_win.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/.github/workflows/test_clang_win.yml -------------------------------------------------------------------------------- /.github/workflows/test_gcc_linux.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/.github/workflows/test_gcc_linux.yml -------------------------------------------------------------------------------- /.github/workflows/test_gcc_win.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/.github/workflows/test_gcc_win.yml -------------------------------------------------------------------------------- /.github/workflows/test_msvc_win.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/.github/workflows/test_msvc_win.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/.gitignore -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/README.md -------------------------------------------------------------------------------- /cmake/tiny-optionalConfig.cmake.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/cmake/tiny-optionalConfig.cmake.in -------------------------------------------------------------------------------- /include/tiny/optional.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/include/tiny/optional.h -------------------------------------------------------------------------------- /include/tiny/optional_flag_manipulator_fwd.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/include/tiny/optional_flag_manipulator_fwd.h -------------------------------------------------------------------------------- /include/tiny_optional.natvis: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/include/tiny_optional.natvis -------------------------------------------------------------------------------- /performance/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/main.cpp -------------------------------------------------------------------------------- /performance/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/makefile -------------------------------------------------------------------------------- /performance/performance.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/performance.sln -------------------------------------------------------------------------------- /performance/performance.vcxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/performance.vcxproj -------------------------------------------------------------------------------- /performance/performance.vcxproj.filters: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/performance.vcxproj.filters -------------------------------------------------------------------------------- /performance/plot.plt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/plot.plt -------------------------------------------------------------------------------- /performance/results_absolute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/results_absolute.png -------------------------------------------------------------------------------- /performance/results_clang.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/results_clang.dat -------------------------------------------------------------------------------- /performance/results_gcc.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/results_gcc.dat -------------------------------------------------------------------------------- /performance/results_msvc.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/results_msvc.dat -------------------------------------------------------------------------------- /performance/results_relative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/performance/results_relative.png -------------------------------------------------------------------------------- /tests/ComparisonTests.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ComparisonTests.cpp -------------------------------------------------------------------------------- /tests/ComparisonTests.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ComparisonTests.h -------------------------------------------------------------------------------- /tests/CompilationBase.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/CompilationBase.cpp -------------------------------------------------------------------------------- /tests/CompilationBase.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/CompilationBase.h -------------------------------------------------------------------------------- /tests/CompilationErrorTests.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/CompilationErrorTests.cpp -------------------------------------------------------------------------------- /tests/CompilationErrorTests.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/CompilationErrorTests.h -------------------------------------------------------------------------------- /tests/ConstructionTests.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ConstructionTests.cpp -------------------------------------------------------------------------------- /tests/ConstructionTests.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ConstructionTests.h -------------------------------------------------------------------------------- /tests/ExerciseOptionalAIP.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ExerciseOptionalAIP.cpp -------------------------------------------------------------------------------- /tests/ExerciseOptionalAIP.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void test_OptionalAIP(); 4 | -------------------------------------------------------------------------------- /tests/ExerciseOptionalEmptyViaType.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ExerciseOptionalEmptyViaType.cpp -------------------------------------------------------------------------------- /tests/ExerciseOptionalEmptyViaType.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void test_OptionalEmptyViaType(); 4 | -------------------------------------------------------------------------------- /tests/ExerciseOptionalInplace.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ExerciseOptionalInplace.cpp -------------------------------------------------------------------------------- /tests/ExerciseOptionalInplace.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void test_OptionalInplace(); 4 | -------------------------------------------------------------------------------- /tests/ExerciseOptionalWithCustomFlagManipulator.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ExerciseOptionalWithCustomFlagManipulator.cpp -------------------------------------------------------------------------------- /tests/ExerciseOptionalWithCustomFlagManipulator.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ExerciseOptionalWithCustomFlagManipulator.h -------------------------------------------------------------------------------- /tests/ExerciseStdOptional.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ExerciseStdOptional.cpp -------------------------------------------------------------------------------- /tests/ExerciseStdOptional.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void test_CrosscheckStdOptional(); 4 | -------------------------------------------------------------------------------- /tests/ExerciseTinyOptionalPayload.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ExerciseTinyOptionalPayload.h -------------------------------------------------------------------------------- /tests/ExerciseTinyOptionalPayload1.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ExerciseTinyOptionalPayload1.cpp -------------------------------------------------------------------------------- /tests/ExerciseTinyOptionalPayload2.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/ExerciseTinyOptionalPayload2.cpp -------------------------------------------------------------------------------- /tests/Exercises.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/Exercises.h -------------------------------------------------------------------------------- /tests/GccLikeCompilation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/GccLikeCompilation.cpp -------------------------------------------------------------------------------- /tests/GccLikeCompilation.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/GccLikeCompilation.h -------------------------------------------------------------------------------- /tests/IntermediateTests.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/IntermediateTests.cpp -------------------------------------------------------------------------------- /tests/IntermediateTests.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/IntermediateTests.h -------------------------------------------------------------------------------- /tests/MsvcCompilation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/MsvcCompilation.cpp -------------------------------------------------------------------------------- /tests/MsvcCompilation.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/MsvcCompilation.h -------------------------------------------------------------------------------- /tests/NatvisTests.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/NatvisTests.cpp -------------------------------------------------------------------------------- /tests/NatvisTests.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void test_Natvis(); 4 | -------------------------------------------------------------------------------- /tests/SpecialMonadicTests.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/SpecialMonadicTests.cpp -------------------------------------------------------------------------------- /tests/SpecialMonadicTests.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/SpecialMonadicTests.h -------------------------------------------------------------------------------- /tests/TestTypes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/TestTypes.h -------------------------------------------------------------------------------- /tests/TestUtilities.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/TestUtilities.cpp -------------------------------------------------------------------------------- /tests/TestUtilities.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/TestUtilities.h -------------------------------------------------------------------------------- /tests/Tests.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/Tests.cpp -------------------------------------------------------------------------------- /tests/Tests.vcxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/Tests.vcxproj -------------------------------------------------------------------------------- /tests/Tests.vcxproj.filters: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/Tests.vcxproj.filters -------------------------------------------------------------------------------- /tests/make_win_clang.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/make_win_clang.ps1 -------------------------------------------------------------------------------- /tests/make_win_gcclike.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/make_win_gcclike.ps1 -------------------------------------------------------------------------------- /tests/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/makefile -------------------------------------------------------------------------------- /tests/tiny-optional.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Sedeniono/tiny-optional/HEAD/tests/tiny-optional.sln --------------------------------------------------------------------------------