我正在尝试为operator<<标准库容器的特定实例化编写重载,这些容器将存储在boost::variant.这是一个说明问题的小例子:
#include <iostream>
#include <vector>
std::ostream & operator<<( std::ostream & os, const std::vector< int > & ) {
os << "Streaming out std::vector< int >";
return os;
}
std::ostream & operator<<( std::ostream & os, const std::vector< double > & ) {
os << "Streaming out std::vector< double >";
return os;
}
#include <boost/variant.hpp>
typedef boost::variant< std::vector< int >, std::vector< double > > MyVariant;
int main( int argc, char * argv[] ) {
std::cout << MyVariant();
return …Run Code Online (Sandbox Code Playgroud) c++ boost operator-overloading variant argument-dependent-lookup