Boost Replaceable by C++11 language features or libraries
2017-06-22 16:09 tlnshuju 阅读(216) 评论(0) 编辑 收藏 举报Replaceable by C++11 language features or libraries
- Foreach → Range-based for
- Functional/Forward → Perfect forwarding (with rvalue references, variadic templates and std::forward)
- In Place Factory, Typed In Place Factory → Perfect forwarding (at least for the documented use cases)
- Lambda → Lambda expression (in non-polymorphic cases)
- Local function → Lambda expression
- Min-Max → std::minmax, std::minmax_element
- Ratio → std::ratio
- Static Assert → static_assert
- Thread → <thread>, etc (but check this question).
- Typeof → auto, decltype
- Value initialized → List-initialization (§8.5.4/3)
TR1 (they are marked in the documentation if those are TR1 libraries)
- Array → std::array
- Bind → std::bind
- Enable If → std::enable_if
- Function → std::function
- Member Function → std::mem_fn
- Random → <random>
- Ref → std::ref, std::cref
- Regex → <regex>
- Result Of → std::result_of
- Smart Ptr → std::unique_ptr, std::shared_ptr, std::weak_ptr (but boost::intrusive_ptr still cannot be replaced)
- Swap (swapping arrays) → std::swap
- Tuple → std::tuple
- Type Traits → <type_traits>
- Unordered → <unordered_set>, <unordered_map>
Features back-ported from C++11:
Replaceable by C++14/17 language features or libraries (based on http://isocpp.org/blog/2013/04/trip-report-iso-c-spring-2013-meeting)
- Concept check → Concepts Lite
- Filesystem → <filesystem>
- Optional → std::optional
A large part of MPL can be trimmed down or removed using variadic templates. Some common use cases of Lexical cast can be replaced by std::to_string and std::stoX.
Some Boost libraries are related to C++11 but also have some more extensions, e.g.Boost.Functional/Hash contains hash_combine and related functions not found in C++11, Boost.Chronohas I/O and rounding and many other clocks, etc. so you may still want to take a look at the boost ones before really dismissing them.
http://stackoverflow.com/questions/8851670/relevant-boost-features-vs-c11