Dear friends, please see the bellow my code and tell me how to get out this problem please.when I try to print values of variant it's giving the error as: std::ostream& operator<<(std::ostream&, const status_rsp&): worked.cpp:33: error: const struct status_rsp has no member named os worked.cpp:33: error: const class boost::variant<int, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> has no member named channelid worked.cpp:33: error: expected ) before ; token worked.cpp:34: error: const class boost::variant<int, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost #include<vector> #include<iostream> #include<boost/variant.hpp> typedef int cid; typedef int n_queue; typedef boost::variant<chid> link_st_rs; typedef std::vector<link_st_rs> link_st_rs_list; typedef boost::variant<n_queue> link_de_rs; typedef std::vector<link_de_rs> link_de_rs_list; using namespace std; struct lparam { int value; }; typedef vector<lparam> link1; struct link_s_rsp { link1 ll; link_st_rs_list lsrl; link_de_rs_list ldrl; }; struct status_rsp { link_s_rsp rsp; friend std::ostream& operator<<(std::ostream& os , const status_rsp& sr) { os << "the value is " << sr.rsp.ll.front().value; os << "id" << sr.rsp.lsrl.front().chid; os << "val" << sr.rsp.ldrl.front().n_queue; return os; } }; typedef vector<status_rsp> srl; int main() { linkparam lp; lp.value =90; link_de_rs_list ldrl; lsrl.push_back(4); ldrl.push_back(3); status_rsp sr; sr.rsp.ll.push_back(lp); srl srl1; srl1.push_back(sr); link1::iterator iter2 = srl1.begin()->rsp.ll.begin(); cout << "A vlue is: " << iter2->value; link_st_rs_list::iterator iter3 = srl1.begin()->rsp.lsrl.begin(); cout << " B value " << iter3->chid; link_de_rs_list::iterator iter4 = srl1.begin()->rsp.ldrl.begin(); cout << "C value" < iter4->n_queue; cin.ignore(); return 0; } Best Regards BaBu -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.