C++11
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
C++11 usage status
The table lists C++11 features and whether they can be used in Inkscape or not (yet). Add C++11 features that you would like to use to the table, so that we know what to test for to increase the C++11 "allowance".
Feature | Can use? | Comment |
---|---|---|
std::unique_ptr<> | not yet | replaces boost::scoped_ptr<> and std::auto_ptr<> |
std::shared_ptr<> | not yet | replaces boost::shared_ptr<> |
std::unordered_*<> | replaces the hack in util/unordered-containers.h | |
auto (type inference) | not yet | |
enum class | not yet | |
range-based for | not yet | |
lambda functions | not yet | in-place defitions for small functions |
constructor delegation | not yet | reduces boilerplate when an object has many constructors |
right angle brackets in templates | not yet | fixes coding style oddity |
async, futures | not yet | allows easy multithreading |
toxic feature of doom | NO | Never use this (in case we stumble upon C++11 features that we really don't like) |
supported feature | from 0.50 |
C++11 platform status
We need to keep coordinated with the section on Distro Dependencies
Also see these pages
- http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport - http://en.cppreference.com/w/cpp/compiler_support
Note that "__cplusplus" is always "1" for GCC 4.6 that is used on Windows. So "#if __cplusplus < 201103L" or variants does not work to choose between C++03 or C++11 code.
The table lists C++11 features and whether they work in trunk on a certain platform as advertised. If all lights are green -> set the light to green in the [C++11 usage status] section (taking current trunk version into account).
Windows | Mac 10.6 | Mac 10.7 | Fedora 20 | Red Hat 7.0 | Red Hat 6.5 | Comment | |
---|---|---|---|---|---|---|---|
Feature | TDM-GCC 4.6/4.9(x64) | GCC 4.2 | Clang 3(?) | GCC 4.8.2 | GCC 4.8.2 | GCC 4.4.7 | |
unique_ptr<> | Defined in <memory> | ||||||
shared_ptr<> | Defined in <memory> | ||||||
auto | |||||||
enum class | |||||||
range-based for |