La lecture d'un mot de passe à partir de std::cin

J'ai besoin de lire un mot de passe à partir de l'entrée standard et voulait std::cin pas l'écho des caractères tapés par l'utilisateur...

Comment puis-je désactiver l'écho de std::cin?

voici le code que j'utilise actuellement:

string passwd;
cout << "Enter the password: ";
getline( cin, passwd );

Je suis à la recherche d'un OS de façon agnostique pour ce faire.
Ici il y a des façons de le faire dans les deux Windows et *nix.