Namespaces
Variants
Actions

deduction guides for std::optional

From cppreference.com
< cpp‎ | utility‎ | optional
 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
(C++20)(C++20)(C++20)  
(C++20)
(C++20)
(C++14)
(C++11)
(C++11)
(C++23)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)


 
 
Defined in header <optional>
template< class T >
optional(T) -> optional<T>;
(since C++17)

One deduction guide is provided for std::optional to account for the edge cases missed by the implicit deduction guides, in particular, non-copyable arguments and array to pointer conversion.

[edit] Example

Run this code
#include <optional>
#include <type_traits>
 
int main()
{
 int a[2];
 std::optional oa{a}; // uses explicit deduction guide
 static_assert(std::is_same_v <decltype(oa), std::optional <int*>> == true);
}
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/optional/deduction_guides&oldid=156653"

AltStyle によって変換されたページ (->オリジナル) /