- Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::convertible_to(3) | C++ Standard Libary | std::convertible_to(3) | 
NAME¶
std::convertible_to - std::convertible_to
Synopsis¶
 Defined in header <concepts>
  
   template< class From, class To >
  
   concept convertible_to =
  
   std::is_convertible_v<From, To> && (since C++20)
  
   requires {
  
   static_cast<To>(std::declval<From>());
  
   };
  
   The concept convertible_to<From, To> specifies that an expression of
    the same type
  
   and value category as those of std::declval<From>() can be implicitly
    and explicitly
  
   converted to the type To, and the two forms of conversion produce equal
    results.
  
   Semantic requirements
  
   convertible_to<From, To> is modeled only if, given a function fun of
    type
  
   std::add_rvalue_reference_t<From>() such that the expression fun() is
  
   equality-preserving,
  
   * Either
  
   * To is neither an object type nor a reference-to-object type, or
  
   * static_cast<To>(fun()) is equal to []() -> To { return fun(); }(),
    and
  
   * One of the following is true:
  
   * std::add_rvalue_reference_t<From> is not a reference-to-object type,
    or
  
   * std::add_rvalue_reference_t<From> is an rvalue reference to a
  
   non-const-qualified type, and the resulting state of the object referenced
  
   by fun() is valid but unspecified after either expression above; or
  
   * the object referred to by fun() is not modified by either expression
  above.
  
   Equality preservation
  
   Expressions declared in requires expressions of the standard library concepts
    are
  
   required to be equality-preserving (except where stated otherwise).
See also¶
 is_convertible
  
   is_nothrow_convertible checks if a type can be converted to the other type
  
   (C++11) (class template)
  
   (C++20)
| 2024.06.10 | http://cppreference.com |