#include #include #include template T* add_ptr(T const&); int main() { int i; typedef BOOST_TYPEOF(add_ptr(i)) int_ptr; int_ptr pi = &i; std::string s; typedef BOOST_TYPEOF(add_ptr(s)) string_ptr; string_ptr ps = &s; std::vector vc; typedef BOOST_TYPEOF(add_ptr(vc)) vector_char_ptr; vector_char_ptr pvc = &vc; std::vector vs; typedef BOOST_TYPEOF(add_ptr(vs)) vector_string_ptr; vector_string_ptr pvs = &vs; }