Erro: E0254 nome de tipo não é permitido

Estou recebendo este erro neste codigo:

bool Configuration::GetConfigBlockLine(ifstream& file, string& key, string& value) {     string line;      // end of file     while( !file.eof() )     {         // read line from config file         getline( file, line );         TrimString( line );          // end of object's data          if( line.compare( "#end" ) == 0 )             return false;          size_t p = line.find( '=' );         if( p != string.npos )         {             // key             key = line.substr( 0, p );             TrimString( key );              // value             value = line.substr( p + 1, line.length() );             TrimString( value );              // key - value pair read successfully             return true;         }     }      // error     return false; } 

Aparentemente ele diz que string nao e um nome permitido, em “if( p != string.npos )” mas por que esse erro ocorre e como posso corrigi-lo.