Exemplo
int getNum(){
return 5;
}

void main( int argc, char* argv[]) {
while( a = getNum() ) {
cout << "A is still 5";
}
}

Solução
Se a designação for um erro, altere-a para ser uma comparação. Caso contrário, faça a designação fora da instrução condicional.
int getNum(){
return 5;
}

void main( int argc, char* argv[]) {
int a = 5;
while( a == getNum() ) {
cout << 
"A is still 5";
}
}