C++ Utility Library - piecewise_construct Function



Description

It is a piecewise construct constant and this constant value is passed as the first argument to construct a pair object to select the constructor form that constructs its members in place by forwarding the elements of two tuple objects to their respective constructor.

Declaration

Following is the declaration for std::piecewise_construct function.

constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();

C++11

constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();

Parameters

none

Return Value

none

Exceptions

none

Data races

none

Example

In below example explains about std::piecewise_construct function.

#include <utility>
#include <iostream>
#include <tuple>
#include <vector>
#include <string>

int main () {
   std::pair < std::string, std::vector<int> >
      foo (
         std::piecewise_construct,
         std::forward_as_tuple("sample"),
         std::forward_as_tuple(2,100)
      );
   std::cout << "foo.first: " << foo.first << '\n';
   std::cout << "foo.second:";
   for (int& x: foo.second) std::cout << ' ' << x;
   std::cout << '\n';

   return 0;
}

Let us compile and run the above program, this will produce the following result −

foo.first: sample
foo.second: 100 100
utility.htm
Advertisements