std::piecewise_construct_t
Aus cppreference.com
![]() | This page has been machine-translated from the English version of the wiki using Google Translate. The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
definiert in Header <utility> | ||
struct piecewise_construct_t {}; | (seit C++11) | |
std::piecewise_construct_t is an empty struct tag type used to disambiguate between different functions that take two tuple arguments.
The overloads that do not use std::piecewise_construct_t assume that each tuple argument becomes the element of a pair. The overloads that use std::piecewise_construct_t assume that each tuple argument is used to construct, piecewise, a new object of specified type, which will become the element of the pair.
[Bearbeiten]Beispiel
#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
[Bearbeiten]Siehe auch
(C++11) | ein Objekt vom Typ piecewise_construct_t verwendet, um Funktionen für stückweise Konstruktion eindeutig zu machen Original: an object of type piecewise_construct_t used to disambiguate functions for piecewise construction The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (konstanten) |