utFunction  ](/w/cpp/named_req/UnformattedOutputFunction
"cpp/named req/UnformattedOutputFunction")  
---  
  
  
  
[ Formatters ](/w/cpp/named_req#Formatters "cpp/named req")  
|  [ BasicFormatter  ](/w/cpp/named_req/BasicFormatter "cpp/named
req/BasicFormatter") (C++20)  
---  
  
|  [ Formatter  ](/w/cpp/named_req/Formatter "cpp/named req/Formatter")
(C++20)  
---  
  
[ Random Numbers ](/w/cpp/named_req#Random_Number_Generation "cpp/named req")  
|  [ SeedSequence  ](/w/cpp/named_req/SeedSequence "cpp/named
req/SeedSequence") (C++11)  
---  
[ RandomNumberEngine  ](/w/cpp/named_req/RandomNumberEngine "cpp/named
req/RandomNumberEngine") (C++11)  
  
|  [ RandomNumberDistribution  ](/w/cpp/named_req/RandomNumberDistribution
"cpp/named req/RandomNumberDistribution") (C++11)  
---  
[ UniformRandomBitGenerator  ](/w/cpp/named_req/UniformRandomBitGenerator
"cpp/named req/UniformRandomBitGenerator") (C++11)  
  
|  [ RandomNumberEngineAdaptor  ](/w/cpp/named_req/RandomNumberEngineAdaptor
"cpp/named req/RandomNumberEngineAdaptor") (C++11)  
---  
  
  
  
[ Concurrency ](/w/cpp/named_req#Concurrency "cpp/named req")  
|  [ BasicLockable  ](/w/cpp/named_req/BasicLockable "cpp/named
req/BasicLockable") (C++11)  
---  
[ Lockable  ](/w/cpp/named_req/Lockable "cpp/named req/Lockable") (C++11)  
[ TimedLockable  ](/w/cpp/named_req/TimedLockable "cpp/named
req/TimedLockable") (C++11)  
  
|  [ SharedLockable  ](/w/cpp/named_req/SharedLockable "cpp/named
req/SharedLockable") (C++14)  
---  
[ SharedTimedLockable  ](/w/cpp/named_req/SharedTimedLockable "cpp/named
req/SharedTimedLockable") (C++14)  
[ Mutex  ](/w/cpp/named_req/Mutex "cpp/named req/Mutex") (C++11)  
  
|  [ TimedMutex  ](/w/cpp/named_req/TimedMutex "cpp/named req/TimedMutex")
(C++11)  
---  
[ SharedMutex  ](/w/cpp/named_req/SharedMutex "cpp/named req/SharedMutex")
(C++17)  
[ SharedTimedMutex  ](/w/cpp/named_req/SharedTimedMutex "cpp/named
req/SharedTimedMutex") (C++14)  
  
[ Ranges ](/w/cpp/named_req#Ranges "cpp/named req")  
|  [ RangeAdaptorObject  ](/w/cpp/named_req/RangeAdaptorObject "cpp/named
req/RangeAdaptorObject") (C++20)  
---  
  
|  ** RangeAdaptorClosureObject  ** (C++20)  
---  
  
[ Other ](/w/cpp/named_req#Other "cpp/named req")  
|  [ CharTraits  ](/w/cpp/named_req/CharTraits "cpp/named req/CharTraits")  
---  
[ RegexTraits  ](/w/cpp/named_req/RegexTraits "cpp/named req/RegexTraits")
(C++11)  
[ BitmaskType  ](/w/cpp/named_req/BitmaskType "cpp/named req/BitmaskType")  
[ LiteralType  ](/w/cpp/named_req/LiteralType "cpp/named req/LiteralType")
(C++11)  
  
|  [ NumericType  ](/w/cpp/named_req/NumericType "cpp/named req/NumericType")  
---  
[ UnaryTypeTrait  ](/w/cpp/named_req/UnaryTypeTrait "cpp/named
req/UnaryTypeTrait") (C++11)  
[ BinaryTypeTrait  ](/w/cpp/named_req/BinaryTypeTrait "cpp/named
req/BinaryTypeTrait") (C++11)  
[ TransformationTrait  ](/w/cpp/named_req/TransformationTrait "cpp/named
req/TransformationTrait") (C++11)  
  
|  [ Clock  ](/w/cpp/named_req/Clock "cpp/named req/Clock") (C++11)  
---  
[ TrivialClock  ](/w/cpp/named_req/TrivialClock "cpp/named req/TrivialClock")
(C++11)  
  
  
  
  
  
[ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/named_req/navbar_content&action=edit)

_Range adaptor closure objects_ are [ FunctionObject  s
](/w/cpp/named_req/FunctionObject "cpp/named req/FunctionObject") that are
callable via the pipe operator: if  C  is a range adaptor closure object and
R  is a [ ` range ` ](/w/cpp/ranges/range "cpp/ranges/range") , these two
expressions are [ equivalent ](/w/cpp/language/expressions#Expression-
equivalence "cpp/language/expressions") :

    
    
    C(R)
    R | C

Two range adaptor closure objects can be chained by  operator  |  to produce another range adaptor closure object: if  C  and  D  are range adaptor closure objects, then  C  |  D  produces a range adaptor closure object  E  with the following properties: 

  * E  stores a copy of  C  and  D  , direct-non-list-initi