#include <iostream>
#include <vector>
using namespace std;
template<typename T>
typename T::value_type top(const T &c)
{
if (!c.empty()){
return c.back();
}
else
return typename T::value_type();
}
int main(){
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
cout << top<vector<int> >(vec) << endl;
3