Boost logo

Boost Users :

Subject: [Boost-users] operator<< for std::vector< boost::variant< type_a, type_b >>
From: Maarten Verhage (m_r_verhage_at_[hidden])
Date: 2018-06-18 18:55:12


Dear boost-savvy people,

I fail to understand how I need to write a working ostream overload for a type I have. I've read the boost::variant documentation. As well as stackoverflow question:

https://stackoverflow.com/questions/46343138/using-stdvectorboostvariant-with-google-mock-causes-a-compilation-err

Still I fail to understand how to make it work for the type I have. In the code you can see parameter_t is an element in the employee_t. I need to keep this data structure this way.

Attached is my single 30 line problem code. I do compile with gcc 5.1.0 with C++14 support.

It doesn't compile. The important part of the compiler output might be:
C:\dev\boost_1_67_0/boost/variant/detail/variant_io.hpp:64:14: error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'const std::vector<boost::variant<int, double> >')
         out_ << operand;

My overload is obviously wrong. I would be very happy if someone can show me how to make it work.

Best regards,
Maarten Verhage





Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net