Boost logo

Boost :

Subject: [boost] Implicit Convert from own Typ to Boost::Variant Type
From: a.mueller (a.mueller_at_[hidden])
Date: 2011-02-11 02:44:07


Hi,
i'm new here and i hope you can help me.
My problem i have a class with a Boost Variant type as member and a implicit convert operator from my class to this Variant type. But when i want use the conversion in my programm the Compiler give me a error.
Compiler Version gcc 4.4.1 on Ubuntu system
Boost version 1.45
Example Program:
#include <iostream>

#include <boost/variant.hpp>

#include <boost/lexical_cast.hpp>

using namespace std;

 

typedef boost::variant<float,int> Testtyp;

class Testtypcontainer

{

public:

Testtypcontainer():m_testtyp((float) 5.5){}

Testtyp m_testtyp;

template<class T>

void settesttyp(T testvalue){m_testtyp =testvalue;}

Testtyp gettesttyp(){return m_testtyp;}

operator Testtyp() const{

return m_testtyp;

}

};

int main(){

Testtyp help1;

Testtypcontainer help3;

cout<<help3.gettesttyp()<<endl;

help1=(Testtyp)help3; // generate compile error

return 0;

}

P.s. Sorry for my bad english


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk