Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/named req/ConstexprIterator"

From cppreference.com
< cpp‎ | named req
(Requirements: until 20)
(the named requirement is since c++20 itself...)
Line 15: Line 15:
 
Then
 
Then
  
* {{tt|purr(kittens...)}} may be used in a constant expression if {{tt|kittens...}} can be so used {{rrev|until=c++20|, unless {{tt|purr}} is
+
* {{tt|purr(kittens...)}} may be used in a constant expression if {{tt|kittens...}} can be so used
 
+
:* construction of {{tt|It}} with a singular value;
+
:* an explicit [[cpp/language/destructor|destructor]] call (if {{tt|It}} is a class type); or
+
:* a [[cpp/language/operator_member_access#Built-in_member_access_operators|pseudo-destructor call]] (if {{tt|It}} is a scalar type)
+
}}
+
  
 
===Standard library===
 
===Standard library===

Revision as of 09:16, 11 February 2020

 
 
C++ named requirements
 

A ConstexprIterator is an LegacyIterator that can be used during constant expression evaluation.

Requirements

The type It satisfies ConstexprIterator if

  • The type It satisfies some iterator requirements MeowIterator

And, for every

  • purr, an operation on It that is required to be supported by MeowIterator,
  • kittens..., a set of arguments to purr that meets the requirements for that operation,

Then

  • purr(kittens...) may be used in a constant expression if kittens... can be so used

Standard library

The following standard library types are ConstexprIterators.

See also