【发布时间】:2016-05-12 05:34:56
【问题描述】:
我有一个使用 rapidjson JSON 解析器的 C++ 类 Tester.cpp。
这是代码的缩写版本:
using namespace std;
using namespace rapidjson;
int main(int argc, char** argv)
{
...
//Parse the JSON
rapidjson::Document document;
document.Parse(buffer);
add_rules_to_tester(document);
...
}
void add_rules_to_tester(rapidjson::Document document)
{...}
我的头文件 Tester.h 如下所示(再次缩写):
using namespace std;
using namespace rapidjson;
void add_rules_to_tester(rapidjson::Document document);
当我在 main 方法中注释掉 add_rules_to_tester 行时,我没有收到任何错误。当我取消注释该行时,我会收到以下编译时错误。
In file included from Tester.h:38:0,
from Tester.cpp:28:
rapidjson/document.h: In function ‘int main(int, char**)’:
rapidjson/document.h:2076:5: error:‘rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>::GenericDocument(const rapidjson::GenericDocument<Encoding, Allocator, StackAllocator>&) [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; StackAllocator = rapidjson::CrtAllocator]’ is private
GenericDocument(const GenericDocument&);
^
Tester.cpp:163:34: error: within this context
add_rules_to_tester(document);
^
In file included from Tester.cpp:28:0:
Tester.h:76:6: error: initializing argument 1 of ‘void add_rules_to_tester(rapidjson::Document)’
void add_rules_to_tester(rapidjson::Document document);
对可能出现的问题有什么建议吗?在我看来,我以某种方式误解了名称空间的使用,但如果我能提供任何其他信息,请告诉我。谢谢!
【问题讨论】:
标签: c++ namespaces rapidjson