<转>c++ builder JSONCPP 注意事项 XE2 解决编译问题 _Mfl

简介: 在C++Builder中使用JSONCPP需要注意的问题 1、使用STL的MAP而不是内建的MAP这个问题实际上和编译器无关。内建的MAP不是很稳定,当解析数据大于600K左右时,会崩溃。虽然一般来说JSON的数据大不到哪里去,但不代表数据量小时稳定性就不没有问题,只可能是发生的概率小一些。

在C++Builder中使用JSONCPP需要注意的问题 1、使用STL的MAP而不是内建的MAP这个问题实际上和编译器无关。内建的MAP不是很稳定,当解析数据大于600K左右时,会崩溃。虽然一般来说JSON的数据大不到哪里去,但不代表数据量小时稳定性就不没有问题,只可能是发生的概率小一些。所以还是使用内建的MAP好一些,测试几兆的数据都没有问题。使用STL MAP的方法是编译时不要定义JSON_VALUE_USE_INTERNAL_MAP变量。2、要在2007中编译通过,需要修改一点代码。之所以会有第一个问题,就是因为直接编译时通不过,又不知道原因在哪里,所以尝试了使用内建的MAP才得以通过。但因为存在问题一,所以只好又回头来解决这个问题了。需要修改的地方:value.h文件中,大概873行的地方:把原来的#ifndef JSON_VALUE_USE_INTERNAL_MAP   explicit ValueIteratorBase( const Value::ObjectValues::iterator &current );修改为:#ifndef JSON_VALUE_USE_INTERNAL_MAP   explicit ValueIteratorBase( const std::map<Value::CZString, Value>::iterator &current ); 如果不换成这种笨一点的办法,而是直接象原来那样使用typename,编译器总会报:“[BCC32 Error] map(30): E2089 Identifier ‘_Mfl’ cannot have a type qualifier”错误。当然不是STL map的错。使用排除法找到这个问题,使用死马当做活马医的办法找到解决方案:)颇费一番周折。 另外,JSONCPP开源工程有一段时间没有更新了,不知还会不会长久的维护完善下去。但鉴于JSON.org上推荐的另两个C++实现方案都依赖boost库,只好先暂时用这个实现。实际上JSONCPP的实现还是蛮不错的,数据的解析、生成都是挺方便的。从一些未完成的接口上看(比如PATH相关的),作者也有一些好的想法,只是未来得及实现。 JSONCPP的网站:

相关文章
|
2月前
|
安全 程序员 编译器
【C/C++ 泛型编程 进阶篇 Type traits 】C++类型特征探究:编译时类型判断的艺术
【C/C++ 泛型编程 进阶篇 Type traits 】C++类型特征探究:编译时类型判断的艺术
185 1
|
2月前
|
编译器 C++
【C++练级之路】【Lv.11】模板(你真的了解模板特化和分离编译吗?)
【C++练级之路】【Lv.11】模板(你真的了解模板特化和分离编译吗?)
|
14天前
|
运维 Serverless Go
Serverless 应用引擎产品使用之在阿里云函数计算中c++模板,将编译好的C++程序放进去部署如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
12 1
|
19天前
|
存储 IDE 编译器
C++从入门到精通:1.3.1了解IDE与C++程序的编写、编译和运行
C++从入门到精通:1.3.1了解IDE与C++程序的编写、编译和运行
|
27天前
|
编译器 C++
如何判断一段程序是由 C 编译程序还是由 C++ 编译程序编译的?
如何判断一段程序是由 C 编译程序还是由 C++ 编译程序编译的?
|
1月前
|
存储 编译器 Linux
【C++初阶(十)】C++模板(进阶) ---非类型模板参数、模板的特化以及模板的分离编译
【C++初阶(十)】C++模板(进阶) ---非类型模板参数、模板的特化以及模板的分离编译
24 0
|
2月前
|
Ubuntu 编译器 C++
【Conan 入门教程 】在Ubuntu上使用Conan编译C++第三方库:一站式解决方案
【Conan 入门教程 】在Ubuntu上使用Conan编译C++第三方库:一站式解决方案
232 1
|
5天前
|
设计模式 安全 算法
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]
16 0