Why do we receive an error when explicitly providing the template arguments as below?
#include <tuple>
int main()
{
int a = 1;
int* ap = &a;
// std::make_tuple<int*, int>(ap, a); // cause error "cannot bind rvalue reference of type 'int*&&' to lvalue of type 'int*'
std::make_tuple(ap, a); // fine
}