Decisão de tipo com base na existência de typedef aninhado

Eu preciso definir uma estrutura de modelo que:

element<T>::type

é do tipo:

T::element_type 

se T contiver um typedef (público) chamado element_type, caso contrário (se não contiver esse typedef)

element<T>::type

é do tipo

T::value_type 

se T é mutável e do tipo

const T::value_type

se T é constante.

Estou realmente lutando com isso, qualquer sugestão é muito apreciada! :)

Muito obrigado pela sua ajuda com antecedência!

questionAnswers(2)

yourAnswerToTheQuestion