
#include <utility>
#include <iostream>

std::pair<char,int> test1() {
    return std::pair<char,int>(1,'a');
}

std::pair<char,int> test2() {
    return std::pair<int, char>('a', 1);
}

std::pair<char,int> test3() {
    return std::pair<int, char>(1, 'a');
}

std::pair<char,int> test4(const std::pair<char,int>& arg) {
    return arg;
}

int main(int argc, char *argv[])
{

    auto a = test1().first;
    auto b = test2().first;
    auto c = test3().first;

    std::pair<int, char> arg('a',1);

    auto d = test4(arg).first;

    std::cout << a << b << c << d << "\n";
}
