The Visual Computing Library (VCL) started as a repository for algorithms and data structures developed during my PhD student time. As the name says it was used to visual computing techniques, which in this case were visual simulations.
Assumes C++14 capable compiler with some compatibility for older MSVC versions.
C++ feature matrices: A good overview on the feature support for different compiler versions can be found here: https://en.cppreference.com/w/cpp/compiler_support
Detailed reports at the vendor's pages:
- MSVC: https://msdn.microsoft.com/en-us/library/hh567368.aspx, https://docs.microsoft.com/en-us/cpp/visual-cpp-language-conformance?view=vs-2017
- Intel: https://software.intel.com/en-us/articles/c14-features-supported-by-intel-c-compiler
- Clang: https://clang.llvm.org/cxx_status.html
- GCC: https://gcc.gnu.org/projects/cxx-status.html
Supported compilers:
- MSVC >= 2015
- Clang >= 3.9
- GCC >= 5.1
- Intel ICC >= 17
VCL generally supports the CPU architectures x86, x86-64, and ARM. Test coverage for ARM is still in development. As host platforms, VCL supports Windows, Linux and MacOS.
VCL depends on a number of external libraries. Some are placed directly into the source tree. Most, however, are managed as linked submodule.
Library | License | Version | Source | Notes |
---|---|---|---|---|
Abseil Common Libraries (C++) | Apache-2.0 | 284378a | https://abseil.io | Release 20181200 + bugfix |
C++ commandline parsing | MIT | 2.1.2 | https://github.com/jarro2783/cxxopts | In source tree |
Eigen 3 | MPL2 | 3.3.7 | https://eigen.tuxfamily.org | |
Expected lite | BSL-1.0 | 0.2.0 | https://github.com/martinmoene/expected-lite | In source tree |
Google Test | BSD-3 | 1.8.1 | https://github.com/google/googletest | |
Google Benchmark | Apache-2.0 | 1.4.1 | https://github.com/google/benchmark | |
JSON for Modern C++ | MIT | 3.6.1 | https://github.com/nlohmann/json | |
Tet-tet intersection | Custom | https://github.com/erich666/jgt-code/blob/master/Volume_07/Number_2/Ganovelli2002/tet_a_tet.h | Refactored implementation. The license is included here |