Стандартные шаблоны std :: pare и std :: array являются особыми случаями std :: tuple , и это может быть, что они должны иметь очень похожий набор возможностей. То есть, если типы t1 и t2 могут быть построены из набора аргументов A1, A2, ... и B1, B2, ... , затем морально говоря, мы можем сделать пару
"pair p(a1, a2, ..., b1, b2, ...)"
< /code>
напрямую. Практически, это изложено как что -то вроде этого: < /p>
std::pair p(std::piecewise_construct,
std::forward_as_tuple(a1, a2, ...),
std::forward_as_tuple(b1, b2, ...));
< /code>
Вопрос: < /strong> Почему такая же кусочная конструкция не существует для массивов и кортежей? Есть ли глубокая причина, или это простое упущение? Например, было бы неплохо иметь: < /p>
std::tuple t(std::piecewise_construct,
std::forward_as_tuple(a1, a2, ...),
std::forward_as_tuple(b1, b2, ...),
std::forward_as_tuple(c1, c2, ...));
< /code>
Есть ли причина, по которой это не может быть сделано? [ edit : или я неправильно понимаю цель полностью кусочной конструкции>
Подробнее здесь: https://stackoverflow.com/questions/118 ... nstruction