#include <iostream>
#include <vector>
#include <string>
using namespace std;
template <typename T>
size_t Get(const T& data)
{
return 444;
}
template <typename T>
struct Data
{
std::vector<T> data;
};
template <typename T>
size_t Get(const Data<T>& data) {
return data.data.size();
}
int main() {
std::cout << Get<>(0) << std::endl; // expected output is 444
std::cout << Get<>(Data<int>{}) << std::endl; // expected output is 0
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzaXplX3QgR2V0KGNvbnN0IFQmIGRhdGEpCnsKCXJldHVybiA0NDQ7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzdHJ1Y3QgRGF0YQp7CiAgICBzdGQ6OnZlY3RvcjxUPiBkYXRhOwp9OwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnNpemVfdCBHZXQoY29uc3QgRGF0YTxUPiYgZGF0YSkgewogICAgcmV0dXJuIGRhdGEuZGF0YS5zaXplKCk7Cn0KCmludCBtYWluKCkgewogICAgc3RkOjpjb3V0IDw8IEdldDw+KDApIDw8IHN0ZDo6ZW5kbDsgIC8vIGV4cGVjdGVkIG91dHB1dCBpcyA0NDQKICAgIHN0ZDo6Y291dCA8PCBHZXQ8PihEYXRhPGludD57fSkgPDwgc3RkOjplbmRsOyAgLy8gZXhwZWN0ZWQgb3V0cHV0IGlzIDAKICAgIHJldHVybiAwOwp9