#include <iostream>
#include <vector>
#include <list>
#include <deque>
template<template<typename, typename...> class Container, typename... Params>
void foo(Container<int, Params...> const&)
{
std::cout << __PRETTY_FUNCTION__ << '\n';
}
int main()
{
foo(std::vector<int>{});
foo(std::list<int>{});
foo(std::deque<int>{});
// foo(std::vector<float>{}); // doesn't compile
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPGRlcXVlPgoKdGVtcGxhdGU8dGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lLi4uPiBjbGFzcyBDb250YWluZXIsIHR5cGVuYW1lLi4uIFBhcmFtcz4Kdm9pZCBmb28oQ29udGFpbmVyPGludCwgUGFyYW1zLi4uPiBjb25zdCYpCnsKICAgIHN0ZDo6Y291dCA8PCBfX1BSRVRUWV9GVU5DVElPTl9fIDw8ICdcbic7Cn0KCmludCBtYWluKCkKewogICAgZm9vKHN0ZDo6dmVjdG9yPGludD57fSk7CiAgICBmb28oc3RkOjpsaXN0PGludD57fSk7CiAgICBmb28oc3RkOjpkZXF1ZTxpbnQ+e30pOwogICAgLy8gZm9vKHN0ZDo6dmVjdG9yPGZsb2F0Pnt9KTsgLy8gZG9lc24ndCBjb21waWxlCn0K