boost之variant

原创 2017年01月04日 08:52:53

variant的用法

#include <iostream>
#include <boost/typeof/typeof.hpp>
#include <boost/variant.hpp>
using namespace std;
using namespace boost;
int main()
{
    /////简单使用
    variant<int, float, string>v;
    v = "123";
    cout << v << endl;

    typedef variant<int, float, string> var_t;
    var_t v1(1);
    assert(v1.which() == 0);
    cout << get<int>(v1) << endl;


    //v1 = 3.14;//////error

    var_t v2("string lijiajia");
    cout << get<string>(v2) << endl;
    v2 = v1;
    assert(v2.type() == typeid(int));


    var_t v3;
    assert(v3.type() == typeid(int));
    assert(v3.which() == 0);


    v3 = "lijiajia";
    cout << *get<string>(&v3) << endl;


    ///////编译都通不过以下的try...catch...
    //try
    //{
    //cout << get<double>(v3)<<endl;
    //}
    //catch (bad_get &)
    //{
    //cout << "bad_get" << endl;
    //}




    system("pause");
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

boost基础——variant的原理及基本用法

The variant class template is a safe, generic, stack-based discriminated union container, offering a...
  • lanchunhui
  • lanchunhui
  • 2016年01月17日 17:28
  • 1649

C++“准”标准库Boost学习指南-variant的使用

Variant库包含一个不同于union的泛型类,用于在存储和操作来自于不同类型的对象。这个库的一个特点是支持类型安全的访问,减少了不同数据类型的类型转换代码的共同问题。 Variant 库如何...
  • a418382926
  • a418382926
  • 2015年08月10日 15:45
  • 1893

C++ VARIANT数据类型操作详解

使用VARIANT来传递参数意味着非强类型语言(例如VBScript)能够调用使用强类型语言(C++)实现的方法。 VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构...
  • qq_28098067
  • qq_28098067
  • 2016年05月05日 17:55
  • 3124

关于C++ variant 类型问题

一直想知道C++标准库有没有类似Qt下QVariant功能的类。整理了下网上关于这部分的说法: 1. std::variant 的实现是 C++17的, 使用需要考虑编译器的支持 2....
  • jin396932711
  • jin396932711
  • 2017年02月20日 16:50
  • 958

VARIANT类型和值的转换函数-msdn

//http://technet.microsoft.com/en-us/subscriptions/aa379016%28v=vs.85%29.aspx /* Sample has Bu...
  • wowolook
  • wowolook
  • 2013年03月05日 15:05
  • 1788

使用bjam编译boost

使用bjam编译boost 目的:可以使用bjam工具配置任意版本的vs(va2010,vs2008)和选择编译需要的boost库(Thread lib, Date Lit)。 ...
  • universee
  • universee
  • 2013年02月06日 07:56
  • 1318

【Qt】Variant类

一个关于QVariant类的简单用法示例: #include "widget.h" #include #include #include Widget::Widget(QWidget *...
  • LDan508
  • LDan508
  • 2016年04月15日 08:58
  • 881

[ASP.NET]解决“试图将 Null 值赋予一个非 Variant 数据类型的变量”的问题

错误提示 :"试图将 Null 值赋予一个非 Variant 数据类型的变量" 错误原因:在VS2005中,用ACCESS做数据库时insert into 命令会把自动编号也会加进去,所以这个就需要...
  • d442130165
  • d442130165
  • 2013年11月02日 21:52
  • 1706

boost::variant的诡异现象引发的思考

#include #include #include #include #include #include using namespace std; using namespace boo...
  • wangji163163
  • wangji163163
  • 2017年06月18日 01:14
  • 128

VARIANT 类型说明

string CAdoConnection::VariantToString(const _variant_t &var) { string strValue; TCHAR szValue[102...
  • cmlxiaogeaaa
  • cmlxiaogeaaa
  • 2017年06月15日 18:12
  • 209
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:boost之variant
举报原因:
原因补充:

(最多只允许输入30个字)