Так что, возможно, это самая странная вещь, которую я видел недавно, и мне было любопытно, как это могло произойти. Компилятор дал мне сообщение об ошибке, сказав, что std :: string не определен при использовании в качестве возвращаемого типа, но не при использовании в качестве параметра в методах класса!
#pragma once
#include <string>
#include <vector>
// forward declarations
class CLocalReference;
class CResultSetHandle;
class MyClass
{
public:
MyClass() {}
~MyClass {}
void Retrieve(const CLocalReference& id, CResultSetHandle& rsh, std::string& item); // this is fine
const std::string Retrieve(const CLocalReference& id, CResultSetHandle& rsh); // this fails with std::string is undefined?!?!
};
Выполнение перестройки Все это все равно произошло, мне пришлось выбрать чистое решение, а затем снова перестроить все, чтобы вселенная перестроилась. Хотя это решается на данный момент, я все еще хотел бы знать, что могло вызвать это, потому что я в растерянности относительно того, почему, когда не должно быть конфликтов, особенно когда я всегда использую полные имена для STL.