当前位置: 首页 > news >正文

网站做直播b站软件推广大全

网站做直播,b站软件推广大全,代理ip自动提取网站源码,wordpress写文章报错下面这段内容介绍了一个示例,目的是帮助澄清"归档概念(Archive Concept)"的用法,以便用户可以实现自己的归档类。simple_log_archive.hpp 实现了一个简单但实用的归档类,用于将任何可序列化类型以可读的格式…

下面这段内容介绍了一个示例,目的是帮助澄清"归档概念(Archive Concept)"的用法,以便用户可以实现自己的归档类。simple_log_archive.hpp 实现了一个简单但实用的归档类,用于将任何可序列化类型以可读的格式发送到输出文本流中。使用这个归档类非常简单,示例如下:

#include "simple_log_archive.hpp"
...
// 显示完整的时间表
simple_log_archive log(std::cout);
log << schedule;

上述代码将时间表 schedule 以可读的格式输出到标准输出流,并且产生了以下输出:

schedule count 6item first driver bobhour 6minute 24second -> stops count 3item -> latitude degrees 34minutes 135seconds 52.56longitude degrees 134minutes 22seconds 78.3
...

这个示例的完整代码可以在 demo_simple_log.cpp 中找到。要更好地理解它的工作原理,可以查看 “Trivial Archive”。此外,请注意以下内容:

  • 仅包含了160行代码。
  • 仅包含头文件 - 无需链接到序列化库。
  • 能够显示所有可序列化类型。
  • 缺少一些功能。例如,它不会显示作为二进制数据序列化的信息。
  • 当给定指向多态基类的指针时,它不会显示派生类型的数据,仅显示基类的信息。
  • 如果需要添加这种功能,可以查看下一个示例。

simple_log_archive.hpp

#ifndef BOOST_SIMPLE_LOG_ARCHIVE_HPP
#define BOOST_SIMPLE_LOG_ARCHIVE_HPP// MS compatible compilers support #pragma once
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
# pragma once
#endif/1/2/3/4/5/6/7/8
// simple_log_archive.hpp// (C) Copyright 2010 Robert Ramey - http://www.rrsd.com . 
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)//  See http://www.boost.org for updates, documentation, and revision history.#include <ostream>
#include <cstddef> // std::size_t#include <boost/config.hpp>
#if defined(BOOST_NO_STDC_NAMESPACE)
namespace std{ using ::size_t; 
} // namespace std
#endif#include <boost/type_traits/is_enum.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/eval_if.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/equal_to.hpp>
#include <boost/serialization/nvp.hpp>
#include <boost/serialization/array.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/access.hpp>/
// log data to an output stream.  This illustrates a simpler implemenation
// of text output which is useful for getting a formatted display of
// any serializable class.  Intended to be useful as a debugging aid.
class simple_log_archive {std::ostream & m_os;unsigned int m_depth;template<class Archive>struct save_enum_type {template<class T>static void invoke(Archive &ar, const T &t){ar.m_os << static_cast<int>(t);}};template<class Archive>struct save_primitive {template<class T>static void invoke(Archive & ar, const T & t){ar.m_os << t;}};template<class Archive>struct save_only {template<class T>static void invoke(Archive & ar, const T & t){// make sure call is routed through the highest interface that might// be specialized by the user.boost::serialization::serialize_adl(ar, const_cast<T &>(t), ::boost::serialization::version< T >::value);}};template<class T>void save(const T &t){typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if<boost::is_enum< T >,boost::mpl::identity<save_enum_type<simple_log_archive> >,//elseBOOST_DEDUCED_TYPENAME boost::mpl::eval_if<// if its primitiveboost::mpl::equal_to<boost::serialization::implementation_level< T >,boost::mpl::int_<boost::serialization::primitive_type>>,boost::mpl::identity<save_primitive<simple_log_archive> >,// elseboost::mpl::identity<save_only<simple_log_archive> >> >::type typex;typex::invoke(*this, t);}    #ifndef BOOST_NO_STD_WSTRINGvoid save(const std::wstring &ws){m_os << "wide string types not suported in log archive";}#endifpublic:///// Implement requirements for archive concepttypedef boost::mpl::bool_<false> is_loading;typedef boost::mpl::bool_<true> is_saving;// this can be a no-op since we ignore pointer polymorphismtemplate<class T>void register_type(const T * = NULL){}unsigned int get_library_version(){return 0;}void save_binary(const void *address, std::size_t count){m_os << "save_binary not implemented";}// the << operators template<class T>simple_log_archive & operator<<(T const & t){m_os << ' ';save(t);return * this;}template<class T>simple_log_archive & operator<<(T * const t){m_os << " ->";if(NULL == t)m_os << " null";else*this << * t;return * this;}template<class T, int N>simple_log_archive & operator<<(const T (&t)[N]){return *this << boost::serialization::make_array(static_cast<const T *>(&t[0]),N);}template<class T>simple_log_archive & operator<<(const boost::serialization::nvp< T > & t){m_os << '\n'; // start line with each named object// indent according to object depthfor(unsigned int i = 0; i < m_depth; ++i)m_os << ' ';++m_depth;m_os << t.name(); // output the name of the object* this << t.const_value();--m_depth;return * this;}// the & operator template<class T>simple_log_archive & operator&(const T & t){return * this << t;}///simple_log_archive(std::ostream & os) :m_os(os),m_depth(0){}
};#endif // BOOST_SIMPLE_LOG_ARCHIVE_HPP

demo_log.cpp

/1/2/3/4/5/6/7/8
//
// demo_log.cpp
//
// (C) Copyright 2009 Robert Ramey - http://www.rrsd.com .
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)#include <iostream>
#include <cstdio>#include "demo_gps.hpp"
#include "simple_log_archive.hpp"int main(int argc, char *argv[])
{   // make the schedulebus_schedule schedule;// fill in the data// make a few stopsbus_stop *bs0 = new bus_stop_corner(gps_position(34, 135, 52.560f),gps_position(134, 22, 78.30f),"24th Street", "10th Avenue");bus_stop *bs1 = new bus_stop_corner(gps_position(35, 137, 23.456f),gps_position(133, 35, 54.12f),"State street", "Cathedral Vista Lane");bus_stop *bs2 = new bus_stop_destination(gps_position(35, 136, 15.456f),gps_position(133, 32, 15.300f),"White House");bus_stop *bs3 = new bus_stop_destination(gps_position(35, 134, 48.789f),gps_position(133, 32, 16.230f),"Lincoln Memorial");// make a  routesbus_route route0;route0.append(bs0);route0.append(bs1);route0.append(bs2);// add trips to scheduleschedule.append("bob", 6, 24, &route0);schedule.append("bob", 9, 57, &route0);schedule.append("alice", 11, 02, &route0);// make aother routesbus_route route1;route1.append(bs3);route1.append(bs2);route1.append(bs1);// add trips to scheduleschedule.append("ted", 7, 17, &route1);schedule.append("ted", 9, 38, &route1);schedule.append("alice", 11, 47, &route1);// display the complete schedulesimple_log_archive log(std::cout);log << schedule;delete bs0;delete bs1;delete bs2;delete bs3;return 0;
}
http://www.ds6.com.cn/news/636.html

相关文章:

  • 乌鲁木齐微信公众号制作班级优化大师官方免费下载
  • 时时彩网站源码怎么做如何创建网页链接
  • 佳作哪个公司做网站比较好百度关键词自然排名优化公司
  • 国医堂网站平台建设天津百度推广中心
  • 银川网站建设广告公司廊坊网络推广公司
  • 免费seo网站诊断国外免费推广网站有哪些
  • 哪家做公司网站成都网站seo
  • 商务网站制作语言基础网络营销推广要求
  • 商城网站的开发怎么做的汕头seo公司
  • 40岁以上的设计师都去哪了360优化大师旧版
  • 网站建设 提成谷歌关键词推广怎么做
  • jsp借书网站开发网站运营主要做什么工作
  • 如何给网站流量来源做标记通过在网址后边加问号?seo的收费标准
  • 哪里有网页设计培训五年级下册数学优化设计答案
  • 网站建设中怎样进入后台seo视频网页入口网站推广
  • asp网站栏目如何修改百度推广官网网站
  • 杭州下沙做网站的论坛今日最新消息新闻
  • dw做响应式网站百度大搜推广
  • 建网站做seo百度一下app
  • 武汉光谷新闻最新消息网站seo教程
  • dede网站404怎么做好搜搜索
  • 泗水做网站网络软文发布平台
  • 品牌型网站建设公司广告推广投放平台
  • 深圳手机集团网站建设怎么查百度竞价关键词价格
  • 动态网页是什么意思优化关键词首页排行榜
  • 贵阳建设工程招投标网站广告推广免费平台
  • 专做特产的网站如何做好seo基础优化
  • 房地产网站建设方案书内容营销案例
  • 广州网站建设公竞价培训课程
  • 邹城网站建设优化神马排名软件