Я пытаюсь использовать google protobuf, и у них есть следующий пример:
using google::protobuf;
protobuf::RpcChannel* channel;
protobuf::RpcController* controller;
SearchService* service;
SearchRequest request;
SearchResponse response;
void DoSearch() {
// You provide classes MyRpcChannel and MyRpcController, which implement
// the abstract interfaces protobuf::RpcChannel and protobuf::RpcController.
channel = new MyRpcChannel("somehost.example.com:1234");
controller = new MyRpcController;
// The protocol compiler generates the SearchService class based on the
// definition given above.
service = new SearchService::Stub(channel);
// Set up the request.
request.set_query("protocol buffers");
// Execute the RPC.
service->Search(controller, request, response, protobuf::NewCallback(&Done));
}
void Done() {
delete service;
delete channel;
delete controller;
}
При попытке реализовать этот код в Visual Studio Express 2008 появляется сообщение об ошибке:
ошибка C2873: "google :: protobuf":
символ не может быть использован в
используя декларирование
Редактировать: когда я делаю "используя пространство имен google :: protobuf;" внутри функции это больше не дает мне ошибку. Что меня смущает, так это то, что это не работает так, как это показывает пример Google (и Страуструпа в «Языке программирования C ++»).