Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      C++ standard libraries extensions, version 2

      From cppreference.com
      <cpp‎ |experimental
       
       
      Experimental
      Technical Specification
      Filesystem library(filesystem TS)
      Library fundamentals(library fundamentals TS)
      Library fundamentals 2(library fundamentals TS v2)
      Library fundamentals 3(library fundamentals TS v3)
      Extensions for parallelism(parallelism TS)
      Extensions for parallelism 2(parallelism TS v2)
      Extensions for concurrency(concurrency TS)
      Extensions for concurrency 2(concurrency TS v2)
      Concepts(concepts TS)
      Ranges(ranges TS)
      Reflection(reflection TS)
      Mathematical special functions(special functions TR)
      Experimental Non-TS
      Pattern Matching
      Linear Algebra
      std::execution
      Contracts
      2D Graphics
       
       

      Version 2 of the C++ Extensions for Library Fundamentals, ISO/IEC TS 19568:2017, defines the following new components for the C++ standard library, in addition to those defined inversion 1:

      Contents

      [edit]The C++ detection idiom

      alias templates that detect whether atemplate-id is well-formed
      (alias template)
      class type returned bydetected_t on failure
      (class)

      [edit]A const-propagating wrapper for pointer-like objects

      a const-propagating wrapper for pointer-like objects
      (class template)

      [edit]Non-owning pointers

      Defined in header<experimental/memory>
      a class representing a non-owning pointer
      (class template)

      [edit]std::array creation

      Defined in header<experimental/array>
      (library fundamentals TS v2)
      creates astd::array object whose size and optionally element type are deduced from the arguments
      (function template)[edit]

      [edit]ostream_joiner

      Defined in header<experimental/iterator>
      an output iterator that writes successive elements into an output stream, separating adjacent elements with a delimiter
      (class template)

      [edit]Simple random number generation facilities

      Aper-thread engine of typestd::default_random_engine, initialized to an unpredictable state, is maintained for each thread and used by the functions below.

      Defined in header<experimental/random>
      generates a random integer in the specified range
      (function template)[edit]
      reseeds the per-thread random engine
      (function)[edit]
      Defined in header<experimental/algorithm>
      selects n random elements from a sequence
      (function template)
      randomly re-orders elements in a range
      (function template)

      [edit]Feature test macros

      __cpp_lib_experimental_logical_traits
      a value of at least201511 indicates that the logical operator type traits are supported
      (macro constant)
      __cpp_lib_experimental_detect
      a value of at least201505 indicates that the detection idiom is supported
      (macro constant)
      __cpp_lib_experimental_propagate_const
      a value of at least201505 indicates thatpropagate_const is supported
      (macro constant)
      Defined in header<experimental/functional>
      __cpp_lib_experimental_not_fn
      a value of at least201406 indicates thatnot_fn is supported
      (macro constant)
      Defined in header<experimental/memory>
      __cpp_lib_experimental_observer_ptr
      a value of at least201411 indicates thatobserver_ptr is supported
      (macro constant)
      Defined in header<experimental/array>
      __cpp_lib_experimental_make_array
      a value of at least201505 indicates thatmake_array is supported
      (macro constant)
      Defined in header<experimental/iterator>
      __cpp_lib_experimental_ostream_joiner
      a value of at least201411 indicates thatostream_joiner is supported
      (macro constant)
      Defined in header<experimental/vector>
      __cpp_lib_experimental_erase_if
      a value of at least201411 indicates that uniform container erasure is supported
      (macro constant)
      Defined in header<experimental/numeric>
      __cpp_lib_experimental_gcd_lcm
      a value of at least201411 indicates thatgcd andlcm are supported
      (macro constant)
      Defined in header<experimental/random>
      __cpp_lib_experimental_randint
      a value of at least201511 indicates thatrandint and related functions are supported
      (macro constant)
      __cpp_lib_experimental_source_location
      a value of at least201505 indicates thatsource_location is supported
      (macro constant)

      [edit]Merged into C++17

      The following components of the library fundamentals v2 have been adopted into the C++17 standard.

      variadic alias template forvoid
      (alias template)
      variadic logical AND metafunction
      (class template)
      variadic logical OR metafunction
      (class template)
      logical NOT metafunction
      (class template)
      Defined in header<experimental/functional>
      creates a function object that returns the complement of the result of the function object it holds
      (function template)[edit]
      Defined in header<experimental/numeric>
      constexpr function template returning the greatest common divisor of two integers
      (function template)[edit]
      constexpr function template returning the least common multiple of two integers
      (function template)[edit]

      [edit]Merged into C++20

      The following components of the library fundamentals v2 have been adopted into the C++20 standard.

      [edit]Uniform container erasure

      Defined in header<experimental/string>
      erases all elements equal to a specific value from astd::basic_string
      (function template)
      erases all elements satisfying a predicate from astd::basic_string
      (function template)
      Defined in header<experimental/deque>
      erases all elements equal to a specific value from astd::deque
      (function template)
      erases all elements satisfying a predicate from astd::deque
      (function template)
      Defined in header<experimental/vector>
      erases all elements equal to a specific value from astd::vector
      (function template)
      erases all elements satisfying a predicate from astd::vector
      (function template)
      erases all elements equal to a specific value from astd::forward_list
      (function template)
      erases all elements satisfying a predicate from astd::forward_list
      (function template)
      Defined in header<experimental/list>
      erases all elements equal to a specific value from astd::list
      (function template)
      erases all elements satisfying a predicate from astd::list
      (function template)
      Defined in header<experimental/map>
      erases all elements satisfying a predicate from astd::map
      (function template)
      erases all elements satisfying a predicate from astd::multimap
      (function template)
      Defined in header<experimental/set>
      erases all elements satisfying a predicate from astd::set
      (function template)
      erases all elements satisfying a predicate from astd::multiset
      (function template)
      erases all elements satisfying a predicate from astd::unordered_map
      (function template)
      erases all elements satisfying a predicate from astd::unordered_multimap
      (function template)
      erases all elements satisfying a predicate from astd::unordered_set
      (function template)
      erases all elements satisfying a predicate from astd::unordered_multiset
      (function template)

      [edit]Source code information capture

      a class representing information about the source code, such as file names, line numbers, and function names
      (class)

      [edit]std::array conversion

      Defined in header<experimental/array>
      creates astd::array object from a built-in array
      (function template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/experimental/lib_extensions_2&oldid=154983"

      [8]ページ先頭

      ©2009-2025 Movatter.jp