Comment obtenir de l'élément type de conteneur STL exemple?

Je sais à propos de value_type, key_type... mais ils fonctionnent sur les types, pas sur les instances.
J'ai essayé
des trucs comme :

std::set<uint64_t> mySet;   

decltype (mySet)::value_type pos;

Mais il ne marche pas.

EDIT: j'utilise VS 2010.

EDIT2: le prupose de ce code est d'obtenir un type de le donner à boost::lexical_cast<>
est-il une solution qui permet à qui ?
Je veux quelque chose comme ceci:

   mySet.insert(boost::lexical_cast<decltype(mySet)::value_type>(*it));
  //it is a iterator in vector of strings

EDIT3 : cela fonctionne:

mySet.insert(boost::lexical_cast<decltype(mySet)::value_type>(*it));
Que signifie "ne fonctionne pas"?
decltype (mySet)::value_type pos; est correct. Il y a un bug en 2010, dans le compilateur de Microsoft qui ne permet pas de decltype d'être suivi par un :: (voir la question liée doublons)
double possible de decltype et la portée de l'opérateur en C++
Étant donné que vous êtes apparemment affaire à un buggy compilateur, une solution possible serait quelque chose comme: auto pos = *(mySet.begin());
Une solution de contournement: typedef decltype(mySet) T; T::value_type pos;

OriginalL'auteur NoSenseEtAl | 2012-09-12