C++;不带磅号的宏定义 这是我在其他地方找到的C++头文件。< /P> #include "opencv\cv.h" #include <boost/serialization/split_free.hpp> #include <boost/serialization/vector.hpp> #include <boost/archive/binary_oarchive.hpp> #include <boost/archive/binary_iarchive.hpp> BOOST_SERIALIZATION_SPLIT_FREE(cv::Mat) namespace boost { namespace serialization { /** Serialization support for cv::Mat */ template <class Archive> void save(Archive & ar, const ::cv::Mat& m, const unsigned int version) { size_t elem_size = m.elemSize(); size_t elem_type = m.type(); ar & m.cols; ar & m.rows; ar & elem_size; ar & elem_type; const size_t data_size = m.cols * m.rows * elem_size; ar & boost::serialization::make_array(m.ptr(), data_size); } }; }

C++;不带磅号的宏定义 这是我在其他地方找到的C++头文件。< /P> #include "opencv\cv.h" #include <boost/serialization/split_free.hpp> #include <boost/serialization/vector.hpp> #include <boost/archive/binary_oarchive.hpp> #include <boost/archive/binary_iarchive.hpp> BOOST_SERIALIZATION_SPLIT_FREE(cv::Mat) namespace boost { namespace serialization { /** Serialization support for cv::Mat */ template <class Archive> void save(Archive & ar, const ::cv::Mat& m, const unsigned int version) { size_t elem_size = m.elemSize(); size_t elem_type = m.type(); ar & m.cols; ar & m.rows; ar & elem_size; ar & elem_type; const size_t data_size = m.cols * m.rows * elem_size; ar & boost::serialization::make_array(m.ptr(), data_size); } }; },c++,C++,这是一个宏观定义吗?那么英镑符号“#”在哪里?简而言之,它是一个宏BOOST\u SERIALIZATION\u SPLIT\u FREE(my\u class)是宏,它是以下免费序列化函数模板的缩写: namespace boost { namespace serialization { template<class Archive> inline void serialize( Archive & ar, my_class

这是一个宏观定义吗?那么英镑符号“#”在哪里?

简而言之,它是一个宏
BOOST\u SERIALIZATION\u SPLIT\u FREE(my\u class)
是宏,它是以下免费序列化函数模板的缩写:

namespace boost { namespace serialization {
    template<class Archive>
    inline void serialize(
        Archive & ar,
        my_class & t,
        const unsigned int file_version
        ){
            split_free(ar, t, file_version); 
    }
}}
namespace boost{namespace序列化{
模板
内联空序列化(
存档和ar,
我的班级&t,
常量无符号整数文件\u版本
){
无拆分(ar、t、文件版本);
}
}}

还要注意,
BOOST\u SERIALIZATION\u SPLIT\u FREE
必须在任何名称空间之外使用。查看更多信息。

宏将序列化函数拆分为保存和加载函数

您甚至可以将其称为“调用BOOST\u SERIALIZATION\u split\u FREE宏”。虽然宏并不完全是函数,但它们的行为与它们相似。你能给我一些关于宏使用的详细解释的参考资料吗?
namespace boost { namespace serialization {
    template<class Archive>
    inline void serialize(
        Archive & ar,
        my_class & t,
        const unsigned int file_version
        ){
            split_free(ar, t, file_version); 
    }
}}