2015-04-04 19:12:10 +00:00
|
|
|
# octastd
|
2015-04-05 22:10:44 +00:00
|
|
|
|
2016-01-29 22:00:00 +00:00
|
|
|
OctaSTD is a new "standard library" for C++14. It provides containers
|
|
|
|
(dynamic arrays etc) as well as other utilities.
|
2015-04-23 17:47:33 +00:00
|
|
|
|
2015-05-18 01:13:16 +00:00
|
|
|
Documentation for OctaSTD can be found at https://wiki.octaforge.org/docs/octastd.
|
|
|
|
|
2016-01-12 18:33:46 +00:00
|
|
|
Full C++14 support is required in your compiler.
|
2015-04-23 17:47:33 +00:00
|
|
|
|
|
|
|
## Supported compilers
|
|
|
|
|
|
|
|
Compiler | Version
|
|
|
|
-------- | -------
|
2016-07-03 19:27:44 +00:00
|
|
|
gcc/g++ | 5.4+, 6+
|
2016-01-12 18:33:46 +00:00
|
|
|
clang | 3.8+
|
2015-04-23 17:47:33 +00:00
|
|
|
|
2016-01-12 18:33:46 +00:00
|
|
|
Other C++14 compliant compilers might work as well. OctaSTD does not utilize
|
2015-04-23 17:47:33 +00:00
|
|
|
compiler specific extensions except certain builtin type traits - to implement
|
|
|
|
traits that are not normally possible to implement without compiler support.
|
|
|
|
|
|
|
|
OctaSTD does not provide fallbacks for those traits. The compiler is expected
|
2015-05-06 18:54:20 +00:00
|
|
|
to support these builtins. So far the 2 above-mentioned compilers support them
|
|
|
|
(MSVC++ supports most of these as well).
|
2015-05-02 21:12:28 +00:00
|
|
|
|
2016-01-12 18:33:46 +00:00
|
|
|
While Clang 3.6 does implement a sufficient level of C++14 support, it suffers
|
|
|
|
from a bug in its template variable implementation that prevents OctaSTD from
|
|
|
|
functioning. Therefore version 3.8 or higher is necessary (where this bug was
|
|
|
|
finally fixed).
|
|
|
|
|
2016-07-03 19:27:44 +00:00
|
|
|
GCC has implemented a sufficient feature level of C++14 since version 5.1, but
|
|
|
|
also is too buggy until version 5.4. Version 5.1 and 5.2 have template variable
|
|
|
|
partial specialization issues and version 5.3 has an internal compiler error
|
|
|
|
triggered by the tuple implementation. Version 5.4 appears to be the first one
|
|
|
|
to compile this without issues. GCC 6.1 also appears to compile without problems.
|
|
|
|
|
2015-05-02 21:12:28 +00:00
|
|
|
MSVC++ is currently unsupported. It is likely that it will never be supported,
|
2016-01-12 18:33:46 +00:00
|
|
|
as MS recently introduced Clang frontend support in Visual Studio; however,
|
|
|
|
if their own frontend gains all the necessary features, support will be
|
|
|
|
considered.
|
2015-09-09 18:51:33 +00:00
|
|
|
|
|
|
|
## Supported operating systems
|
|
|
|
|
|
|
|
Currently supported OSes in OctaSTD are Linux, FreeBSD and OS X. Other
|
|
|
|
systems that implement POSIX API will also work (if they don't, bug reports
|
|
|
|
are welcome).
|
|
|
|
|
2016-06-27 18:18:31 +00:00
|
|
|
OS X support requires Xcode 8 or newer to work. That is the first version to
|
|
|
|
ship a Clang 3.8 based toolchain, so things will not compile with an older
|
|
|
|
version of Xcode. Alternatively you are free to use any other supported
|
|
|
|
compiler from other distribution channels (official Clang, homebrew gcc
|
|
|
|
or clang, etc.).
|
|
|
|
|
2015-09-09 18:51:33 +00:00
|
|
|
Windows is supported at least with the MinGW (gcc) and Clang compilers. MS
|
2016-02-07 21:17:15 +00:00
|
|
|
Visual Studio is currently unsupported.
|