Difference between revisions of "C++11"
|Line 74:||Line 74:|
! Linux B
! Linux B
Revision as of 17:49, 23 October 2013
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".
|std::unique_ptr<>||not yet||replaces boost::scoped_ptr<> and std::auto_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
Also see this page http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport
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).
|Feature||Windows||Mac||Linux A||Linux B||Comment|