2015-04-04 19:12:10 +00:00
|
|
|
# octastd
|
2015-04-05 22:10:44 +00:00
|
|
|
|
2017-01-14 14:09:27 +00:00
|
|
|
OctaSTD is an extension of the C++14 standard library which mainly provides
|
|
|
|
ranges (to replace iterators) but also various other utilities like proper
|
|
|
|
streams, string formatting, concurrency utilities and others. It's meant
|
|
|
|
to replace the more poorly designed parts of the C++ standard library to
|
|
|
|
make the language easier and more convenient to use.
|
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-10-18 17:40:18 +00:00
|
|
|
clang | 3.8+ (most platforms including LLVM for macOS), 8.0.0+ (macOS Xcode)
|
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
|
2017-01-14 14:09:27 +00:00
|
|
|
compiler specific extensions.
|
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
|
2016-07-08 18:53:40 +00:00
|
|
|
from a bug in its variable template implementation that prevents OctaSTD from
|
2016-01-12 18:33:46 +00:00
|
|
|
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
|
2016-07-08 18:53:40 +00:00
|
|
|
also is too buggy until version 5.4. Version 5.1 and 5.2 have variable template
|
2016-07-03 19:27:44 +00:00
|
|
|
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.
|
|
|
|
|
2017-01-14 14:09:27 +00:00
|
|
|
MSVC++ is currently unsupported but being worked on. You will need at least
|
|
|
|
2015 Update 3 for this to work.
|
2015-09-09 18:51:33 +00:00
|
|
|
|
|
|
|
## Supported operating systems
|
|
|
|
|
2017-01-14 14:09:27 +00:00
|
|
|
Currently supported OSes in OctaSTD are Linux, FreeBSD, macOS and Windows. Other
|
|
|
|
systems might work as well, as long as a sufficient compiler is provided.
|
2015-09-09 18:51:33 +00:00
|
|
|
|
2016-10-18 17:40:18 +00:00
|
|
|
MacOS support requires Xcode 8 or newer to work (or alternatively, official
|
|
|
|
LLVM distribution for macOS or any supported compiler from other channels
|
|
|
|
such as Homebrew). That is the first version to ship a Clang 3.8 based
|
|
|
|
toolchain, so things will not compile with an older version of Xcode.
|
2016-06-27 18:18:31 +00:00
|
|
|
|
2017-01-14 14:09:27 +00:00
|
|
|
Windows support includes MinGW, Clang and soon MSVC++.
|