Пространства имён
Варианты
Действия

std::forward_as_tuple

Материал из cppreference.com
< cpp‎ | utility‎ | tuple

 
 
 
std::tuple
Функции-члены
tuple::tuple
tuple::operator=
tuple::swap
Функции, не являющиеся членами
make_tuple
tie
forward_as_tuple
None
operator=
operator!=
operator<
operator<=
operator>
operator>=
std::swap
get
Вспомогательные классы
Оригинал:
Helper classes
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
tuple_size
tuple_element
uses_allocator
ignore
 
Определено в заголовочном файле <tuple>
template< class... Types >
tuple<Types...> forward_as_tuple( Types&&... args );
(начиная с C++11)
Создает кортеж ссылки на аргументы в args подходящие для передачи в качестве аргумента функции. Кортеж имеет RValue членов справочные данные, когда rvalues ​​используются в качестве аргументов, в противном случае имеет именующее справочных данных членов. Если rvalues ​​используется, результат этой функции должно быть потреблено до следующей точки последовательности.
Оригинал:
Constructs a tuple of references to the arguments in args suitable for forwarding as an argument to a function. The tuple has rvalue reference data members when rvalues are used as arguments, and otherwise has lvalue reference data members. If rvalues are used, the result of this function must be consumed before the next sequence point.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править] Параметры

args -
нуль или более аргументов, чтобы построить кортеж из
Оригинал:
zero or more arguments to construct the tuple from
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Возвращаемое значение

std::tuple объект, созданный как бы std::tuple<Types&&...>(std::forward<Types>(args)...)
Оригинал:
A std::tuple object created as if by std::tuple<Types&&...>(std::forward<Types>(args)...)
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Исключения

noexcept-спецификация:  
noexcept
  (начиная с C++11)

[править] Пример

#include <iostream>
#include <map>
#include <tuple>
#include <string>
 
int main()
{
    std::map<int, std::string> m;
 
    // same as m.emplace(10, 20, 'a');
    m.emplace(std::forward_as_tuple(10, std::string(20, 'a')));
    std::cout << "m[10] = " << m[10] << '\n';
 
    // The following is an error: it produces a
    // std::tuple<int&&, std::string&&> holding two dangling references.
    //
    // auto t = std::forward_as_tuple(10, std::string(20, 'a'));
    // m.emplace(t);
}

Вывод:

m[10] = aaaaaaaaaaaaaaaaaaaa
создает кортеж типа, определённого типами аргументов
(шаблон функции) [edit]
создает tuple ссылок именующее или распаковывает кортеж на отдельные объекты
Оригинал:
creates a tuple of lvalue references or unpacks a tuple into individual objects
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон функции) [edit]
создает tuple путем объединения любого количества наборов
Оригинал:
creates a tuple by concatenating any number of tuples
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон функции) [edit]