跳转至

test

第0题
#include <bits/stdc++.h>
using namespace std;

void
p(int f(int))
{
    cout<<f;
}

void
p(short n)
{
    cout<<n;
}

int
main()
{
    p(putchar);
    p(0);
    return 0;
}
第1题
#include <bits/stdc++.h>
using namespace std;

template <typename T>
void
f(T t)
{
    cout << 0;
}

template <>
void
f<int *>(int *t)
{
    cout << 10;
}

template <typename T>
void
f(T *t)
{
    cout << 20;
}

int
main()
{
    int i = 42;
    f(&i);
    return 0;
}
第2题
#include <bits/stdc++.h>
using namespace std;

struct P
{
    template <typename T> P(T t) { cout << (t += 10); }
};

int
main()
{
    P p(string());
    return 0;
}