constexpr piecewise_construct_t piecewise_construct = std::piecewise_construct_t(); | (since C++11) (until C++17) | |
inline constexpr piecewise_construct_t piecewise_construct = std::piecewise_construct_t(); | (since C++17) |
The constant std::piecewise_construct
is an instance of an empty struct tag type std::piecewise_construct_t
.
#include <iostream> #include <utility> #include <tuple> struct Foo { Foo(std::tuple<int, float>) { std::cout << "Constructed a Foo from a tuple\n"; } Foo(int, float) { std::cout << "Constructed a Foo from an int and a float\n"; } }; int main() { std::tuple<int, float> t(1, 3.14); std::pair<Foo, Foo> p1(t, t); std::pair<Foo, Foo> p2(std::piecewise_construct, t, t); }
Output:
Constructed a Foo from a tuple Constructed a Foo from a tuple Constructed a Foo from an int and a float Constructed a Foo from an int and a float
(C++11) | tag type used to select correct function overload for piecewise construction (class) |
constructs new pair (public member function of std::pair<T1,T2> ) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/utility/piecewise_construct