Existem truques para usar std :: cin para inicializar uma variável const?

Uso comum std :: cin

int X;
cin >> X;

A principal desvantagem disso é que X não pode serconst. Pode facilmente introduzir erros; e estou procurando algum truque para poder criar um valor const e escrever apenas uma vez.

A solução ingênua

// Naive
int X_temp;
cin >> X_temp;
const int X = X_temp;

Você poderia obviamente melhorar mudando o X paraconst&; Ainda assim, a variável original pode ser modificada.

Eu estou procurando uma solução curta e inteligente de como fazer isso. Tenho certeza de que não sou o único que se beneficiará de uma boa resposta a essa pergunta.

// EDIT: Eu gostaria que a solução fosse facilmente extensível aos outros tipos (digamos, todos os PODs,std::string e classes de cópia móvel com construtor trivial) (se não fizer sentido, por favor me avise nos comentários).

questionAnswers(6)

yourAnswerToTheQuestion