table of contents
        
      
      
    | std::variant_npos(3) | C++ Standard Libary | std::variant_npos(3) | 
NAME¶
std::variant_npos - std::variant_npos
Synopsis¶
 Defined in header <variant>
  
   inline constexpr std::size_t variant_npos = -1; (since C++17)
  
   This is a special value equal to the largest value representable by the type
  
   std::size_t, used as the return value of index() when
    valueless_by_exception() is
  
   true
// Run this code
  
   #include <iostream>
  
   #include <stdexcept>
  
   #include <string>
  
   #include <variant>
  
   struct Demon
  
   {
  
   Demon(int) {}
  
   Demon(const Demon&) { throw std::domain_error("copy ctor"); }
  
   Demon& operator= (const Demon&) = default;
  
   };
  
   int main()
  
   {
  
   std::variant<int, Demon> var{42};
  
   std::cout
  
   << std::boolalpha
  
   << "index == npos: " << (var.index() ==
    std::variant_npos) << '\n';
  
   try { var = Demon{666}; } catch (const std::domain_error& ex)
  
   {
  
   std::cout
  
   << "Exception: " << ex.what() << '\n'
  
   << "index == npos: " << (var.index() ==
    std::variant_npos) << '\n'
  
   << "valueless: " << var.valueless_by_exception()
    << '\n';
  
   }
  
   }
Possible output:¶
 index == npos: false
  
   Exception: copy ctor
  
   index == npos: true
  
   valueless: true
See also¶
 returns the zero-based index of the alternative held by the
  
   index variant
  
   (public member function)
  
   valueless_by_exception checks if the variant is in the invalid state
  
   (public member function)
| 2022.07.31 | http://cppreference.com |