1 Allowed language features
2 =========================
4 GROMACS uses C99 for C files and C++11 for C++ files.
5 C++ has a lot of features, but to keep the source code maintainable and easy to read,
6 we will avoid using some of them in Gromacs code. The basic principle is to keep things
8 For compatiblity certain work-arounds are required because not all compilers support
11 * MSVC supports only a subset of C99 and work-arounds are required in those cases.
12 * Before 7.0 (partial support in 6.5) CUDA didn't support C++11. Therefore any
13 header file which is needed (or likely will be nedded) by CUDA should not use C++11.
14 * We should be able to use virtually all C++ features outside of the header files
15 required by CUDA code (and OpenCL kernels), since we have gradually moved to
16 compilers that have full support for C++11.
18 .. TODO: Copy important points from http://www.gromacs.org/index.php?title=Developer_Zone/Programming_Guide/Allowed_C%2B%2B_Features