libostd/README.md

47 lines
2.0 KiB
Markdown
Raw Normal View History

2015-04-04 21:12:10 +02:00
# octastd
2015-04-06 00:10:44 +02:00
2017-01-14 15:09:27 +01: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 19:47:33 +02:00
2015-05-18 03:13:16 +02:00
Documentation for OctaSTD can be found at https://wiki.octaforge.org/docs/octastd.
2016-01-12 19:33:46 +01:00
Full C++14 support is required in your compiler.
2015-04-23 19:47:33 +02:00
## Supported compilers
Compiler | Version
-------- | -------
gcc/g++ | 5.4+, 6+
clang | 3.8+ (most platforms including LLVM for macOS), 8.0.0+ (macOS Xcode)
2015-04-23 19:47:33 +02:00
2016-01-12 19:33:46 +01:00
Other C++14 compliant compilers might work as well. OctaSTD does not utilize
2017-01-14 15:09:27 +01:00
compiler specific extensions.
2016-01-12 19:33:46 +01:00
While Clang 3.6 does implement a sufficient level of C++14 support, it suffers
2016-07-08 20:53:40 +02:00
from a bug in its variable template implementation that prevents OctaSTD from
2016-01-12 19:33:46 +01:00
functioning. Therefore version 3.8 or higher is necessary (where this bug was
finally fixed).
GCC has implemented a sufficient feature level of C++14 since version 5.1, but
2016-07-08 20:53:40 +02:00
also is too buggy until version 5.4. Version 5.1 and 5.2 have variable template
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 15:09:27 +01:00
MSVC++ is currently unsupported but being worked on. You will need at least
2015 Update 3 for this to work.
2015-09-09 20:51:33 +02:00
## Supported operating systems
2017-01-14 15:09:27 +01: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 20:51:33 +02: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.
2017-01-14 15:09:27 +01:00
Windows support includes MinGW, Clang and soon MSVC++.