//ia >> BOOST_SERIALIZATION_NVP(*this); ia >> boost::serialization::make_nvp(BOOST_PP_STRINGIZE(config1), *this); } void DBConfig::saveToXml(const String & pathName) { // make an archive std::ofstream ofs(pathName.c_str()); assert(ofs.good()); boost::archive::xml_oarchive oa(...
问如何使用BOOST_PP_SEQ_FOR_EACH为序列中的每个函数提取一个函数?EN我们在使用Python的过程中,是通过...
而遍历集合的工具有Iterator和Enumeration; Arrays和Collection是操作数组集合的两个工具类。python中字典...
BOOST_PP_SEQ_ENUM(enumerators) \ }; \ \ inlinechar* ToString(name v) \ { \ switch(v) \ { \ BOOST_PP_SEQ_FOR_EACH( \ X_DEFINE_ENUM_WITH_STRING_CONVERSIONS_TOSTRING_CASE, \ name, \ enumerators \ ) \ default:return"[Unknown "BOOST_PP_STRINGIZE(name)"]"; \ ...
接下来,我会选择gnu标准库配置文件(boost/config/stdlib/libstdcpp3.hpp)来进行简要介绍配置文件里面的内容: BOOST_GNU_STDLIB 1 定义它来表明使用gnu标准库 BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)定义BOOST_STDLIB 为对应的标准库字符串形式 ...
BOOST_PP_STRINGIZE(T) \ ) \ 实际上是BOOST_CLASS_EXPORT_GUID宏的定义。继续看看这个宏 #define BOOST_CLASS_EXPORT_GUID(T, K) \ BOOST_CLASS_EXPORT_KEY2(T, K) \ BOOST_CLASS_EXPORT_IMPLEMENT(T) \ 原来这个宏展开式两个宏的定义。先看BOOST_CLASS_EXPORT_KEY2(T,K)这个宏 ...
BOOST_PP_STRINGIZE: stringizes its argument after it has been expanded. 简单说就是现将表达式展开,展开后的内容在转成字符串。 对于这个宏,说些其他的,这个宏非常有用,他可以展示你宏的替换结果!!!这样你需要看某个宏展开的结果,你可以使用这个宏!!!给一个简单的例子: ...
BOOST_PP_STRINGIZE(T) \ ) \ 1. 2. 3. 4. 5. 实际上是BOOST_CLASS_EXPORT_GUID宏的定义。继续看看这个宏 #define BOOST_CLASS_EXPORT_GUID(T, K) \ BOOST_CLASS_EXPORT_KEY2(T, K) \ BOOST_CLASS_EXPORT_IMPLEMENT(T) \ 1. 2. 3. ...
高级技能可以不学,不过 STRINGIZE,CONCAT,COMMA 要记住,以后总能用得上。 VMD VMD是对PP的一个扩充,提供了对PP中数据和数据结构的操作。比如把PP中的List转换成PP中的Tuple;判断一个输入是不是一个PP的列表;给PP提供了push back, pop back等操作函数。要想用它,你得先用得到PP。 杂耍 Hana 这个库需要C++14...
#include <boost/preprocessor/cat.hpp> BOOST_PP_CAT(M,n) //=> Mn 实现##一样的粘接功能 BOOST_PP_STRINGIZE(text) //=> "text" 实现#一样的字面字符串化功能 BOOST_PP_WSTRINGIZE(some text) // 宽字符串 expands to L"some text" --- BOOST_PP_EMPTY() //<boost/preprocessor/facilities/emp...