Ответ 1
В С++ 1z существует ли ситуация, когда полезно использовать
std::make_pair
иstd::make_tuple
вместо использования конструкторовstd::pair
иstd::tuple
?
Всегда есть забавные исключения для каждого правила. Что вы хотите сделать с std::reference_wrapper
?
int i = 42;
auto r = std::ref(i);
pair p(i, r); // std::pair<int, std::reference_wrapper<int> >
auto q = std::make_pair(i,r); // std::pair<int, int&>
Если вы хотите последний, std::make_pair
- это то, что вы хотите.
Кроме того, поскольку std::make_pair
является шаблоном функции, вы можете передать это в другой шаблон функции, который, возможно, хочет что-то сделать:
foo(std::make_pair<int, int>);
Это не кажется очень полезным, но кто-то где-то использует его для решения проблемы - и вы не можете просто передать std::pair
там.