c++ - Which boost libraries are discussed for inclusion in C++17? -
for typical programming needs, c++11 great milestone — replaced 95% of boost code standard library.
yet current status of its libraries not yet covered in standard library?
i started wondering due need of signals2 , lockfree.
i won't repeat has been done concerning networking, algorithms, filesystem, variant , any. however, can discuss point signals2 , little bit more.
boost.signals2
boost.signals2 has been proposed in past n2086 inclusion tr2. more of mix between boost.signals2 , libsigc++. have read, people rather favorable inclusion of signals standard, paper needed more work , work has never been finished [citation needed].
now, more work should done in order adapt paper suits c++17, if task, signals still candidate inclusion.
boost.container
don't me wrong, boost.container has not been proposed inclusion c++17 whole. however, library does have influence on proposals. here why:
n4510 proposes of standard containers can contain incomplete types can have "recursive" types. here minimal example straight paper:
struct entry { std::list<entry> messages; // ... };
the paper proposes
std::vector
,std::list
,std::forward_list
have these requirements gcc, clang , msvc libraries c++17-standard-compliant out of box, , encourages them implement other standard containers can fit idiom. kind of recursive containers 1 of first improvements brought boost.container on standard library containers.n4526 discusses concerns of game industry , embedded industry c++ , standard library. among other things, notes many people waiting write paper propose inclusion of
boost::flat_map
,boost::flat_set
boost.container standard library. while might not written @ all, or @ least not in time c++17, well-written paper accepted. update: p0038 proposes consider inclusion of flat containers standard library.
boost.algorithm
while library new (2012, boost 1.50) helped shape new algorithms have been included in library fundamentals ts and/or in c++17:
n4536 , p0025 propose standardize
clamp
function clamp value between pair of boundary values. proposals mentionclamp
function boost.algorithm source of inspiration design.n3905 , subsequent papers aimed @ fixing design mistake propose standardize new searching algorithms, notably boyer-moore , boyer-moore-horspool string searching algorithms, have lived in boost.algorithm since creation.
miscellaneous things
a list of other features boost discussed or have influenced proposals:
it didn't make c++14,
std::optional
, inspired boost.optional, should make c++17 without problem.the special math functions merged c++17. these functions part of tr1 , boost.math has included them years already.
std::not_fn
merged c++17 , has lived in boost years.p0013 proposes add metafunctions
and_
,or_
,not_
standard library , cites boost.mpl 1 of standard libraries having implemented such features long time. update: adopted in c++17std::conjunction
,std::disjunction
,std::negation
.p0033 states
std::enable_shared_from_this
weakly specified , recommends standardizing same behavior boost's version of utility. proposes standardizeboost::weak_from_this
complete family.many of proposed concurrency features in boost (
std::barrier
,std::latch
...). however, should noted have been implemented in boost because have been proposed inclusion standard library. once, worked other way around. that's case modifications other existing classes.
Comments
Post a Comment