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

网站建设系统平台php网站功能

网站建设系统平台,php网站功能,网站编辑怎么赚钱,网站建设对于电子商务的意义c17引入了any 和 variant&#xff0c;可以将任意数据类型统一用any或variant类型表示&#xff0c;在开发中还是能够带来很多便利的。在c11版本中&#xff0c;可以用下面这个例子&#xff0c;仿照实现一个Any类型。 #include <iostream> #include <stdexcept> #inc…

c++17引入了any 和 variant,可以将任意数据类型统一用any或variant类型表示,在开发中还是能够带来很多便利的。在c++11版本中,可以用下面这个例子,仿照实现一个Any类型。

#include <iostream>
#include <stdexcept>
#include <memory>class UserData{
public:UserData(){}std::string operator()(){return m_name;}
private:std::string m_name="world";
};class Any
{
public:template<typename T>Any(const T& val) noexcept : content(new Holder<T>(val)) {}Any(const Any& other) noexcept : content(other.content ? other.content->Copy() : nullptr) {}Any(Any&& other) noexcept :content(std::move(other.content)) {}Any& operator=(const Any& other){if (this == &other)return *this;content.reset(other.content ? other.content->Copy() : nullptr);return *this;}template<typename T>T& get() const{if (content.get() == nullptr){throw std::exception_ptr();}if (typeid(T).hash_code() != content->TypeID()){throw std::bad_cast();}return static_cast<Holder<T>*>(content.get())->value;}std::string TypeName() const{if (content)return content->TypeName();return "";}size_t TypeID(){if (content)return content->TypeID();return 0;}
private:struct Base {virtual ~Base() {}virtual Base* Copy() const = 0;virtual size_t TypeID() const = 0;virtual const char* TypeName() const = 0;};template<typename T>struct Holder :public Base{Holder<T>() = delete;Holder<T>(const T& val) : value(val), typid(typeid(T).hash_code()), typname(typeid(T).name()) {}~Holder<T>() {}Base* Copy() const override { return new Holder<T>(value); }size_t TypeID() const override { return typid; }const char* TypeName() const override { return typname; }T value;size_t typid;const char* typname;};std::unique_ptr<Base> content;
};int main()
{int iVal = 10;Any param = iVal;int& iv = param.get<int>();iv = 100;std::cout<<param.TypeName()<<", val="<<param.get<int>()<<std::endl;std::string sVal="hello";param = sVal;std::cout<<param.TypeName()<<", val="<<param.get<std::string>()<<std::endl;double dVal = 101.21;Any paramd = dVal;param = paramd;std::cout<<param.TypeName()<<", val="<<param.get<double>()<<std::endl;UserData data;param = data;UserData& dt = param.get<UserData>();std::cout<<param.TypeName()<<", val="<<dt()<<std::endl;return 0;
}

http://www.yayakq.cn/news/107091/

相关文章:

  • 一个网站两个页面网店美工具体要求
  • 乐山北京网站建设百度搜索引擎推广步骤
  • 网站建设业务培训阿里云 做网站
  • 建设游戏网站需要哪些设备网站如何优化一个关键词
  • 做网站数据存在哪里秦皇岛市妇幼保健院
  • 阆中市网站建设服务天津建站费用
  • 做微网站公司简介广州网站建设需要多少费用
  • 湛江网站制作如何辨别官方网站
  • 海外学校网站建设网站关键词代码
  • 商业网站的规划和设计凡科建站骗子
  • 临沂seo网站管理修改wordpress登录密码忘记
  • 开发网站 语言wap门户
  • 佳木斯做网站公司wordpress微信小程式
  • 网站访客qq抓取网站建设建议书
  • 福建漳发建设有限公司网站odoo与wordpress
  • 网站建设网络推广外包服务商平台公司名称
  • 免费网站下载大全网站开发风险分析
  • 网站诊断从哪里开始最打动人心的广告语
  • 网站标题几个字合适北京地铁建设管理公司网站
  • 网站制作哪些公司好兰州网站建设哪家公司好
  • 茂名市住房和城乡建设局网站小区网站建设
  • 本地做网站顺序重庆建设门户网站
  • 美食网站首页设计电子商务培训
  • 服装做外贸的网站建设seo教学视频教程
  • 网站免费建站的方法黄埔定制型网站建设
  • 农业建设信息网站潮州 做网站 有钱
  • 视频网站能备案吗wordpress人个网站
  • 雷山网站建设坑梓网站建设代理商
  • 中山网站建设搭建创建网址快捷方式
  • 山东济南网站建设公司现在pc端网站开发用的什么技术