Види прво тука -> http://mendo.mk/jforum/posts/list/329.page. typeof(k) не е стандарден оператор, а од C++11 наваму треба да користиш decltype(k) за истата намена.
Инаку, во C++11 е многу полесно да го напишеш тоа што го сакаш, користејќи auto. Види го првиот define.
Јас лично се помалку и помалку работам во C++, така да ако има некој што се разбира повеќе, нека пише...