#include <algorithm>
#include <functional>
#include <iostream>
#include <memory>
#include <string>
#include <type_traits>
#include <utility>
template <class T, class... TRest>
struct Opa
{
Opa()
{
std::cout << "Mutiple-arguments template";
}
};
template <class T>
struct Opa<T>
{
Opa()
{
std::cout << "One-argument template";
}
};
int main()
{
Opa<int> opa;
Opa<int, int> opa_opa;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPG1lbW9yeT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgojaW5jbHVkZSA8dXRpbGl0eT4KCgp0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MuLi4gVFJlc3Q+CnN0cnVjdCBPcGEKewogICAgT3BhKCkKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIk11dGlwbGUtYXJndW1lbnRzIHRlbXBsYXRlIjsKICAgIH0KfTsKCgp0ZW1wbGF0ZSA8Y2xhc3MgVD4Kc3RydWN0IE9wYTxUPgp7CiAgICBPcGEoKQogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCAiT25lLWFyZ3VtZW50IHRlbXBsYXRlIjsKICAgIH0KfTsKCmludCBtYWluKCkKewoJT3BhPGludD4gb3BhOwoJT3BhPGludCwgaW50PiBvcGFfb3BhOwp9