
On Fri, Apr 13, 2012 at 12:28 PM, Baba Prasad <gbabu@ece.iisc.ernet.in>wrote:
Dear Friend
due to hurry I did sent proper error message so pls have look now.
my program is
typedef std::vector<std::string> vec_name;
struct network { boost::variant<vec_name> net_id; };
typedef std::vector<network>network_list;
// create the instance for vector
network_list net_list;
for(int i=0; i<net_list.size(); ++i) { unsigned char* query_str = net_list[0].net_id; }
ERROR is error: cannot convert ‘boost::variant<std::vector<std::basic_string<char>
’ to ‘unsigned char*’ in assignment
Unless I'm mistaken, to reiterate, *you* need to decide how you want to map a std::vector< std::string > to an unsigned char*; this has nothing to do with Boost.Variant. Once you've figured that out, use either boost::apply_visitor [1] (probably preferred if your actual use case is more elaborate) or boost::get [2] to apply this mapping on your variant value. - Jeff [1] http://www.boost.org/doc/libs/1_49_0/doc/html/boost/apply_visitor.html [2] http://www.boost.org/doc/libs/1_49_0/doc/html/boost/get_id1673528.html