My `std::variant` contains streamable types: 

```
std::variant<int, std::string> a, b;
a = 1;
b = "hi";
std::cout << a << b << std::endl;

```

Compiling with g++7 with -std=c++1z returns compilation time errors. 

An excerpt:

```
test.cpp: In function 'int main(int, char**)':
test.cpp:10:13: error: no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >')
   std::cout << a << b << std::endl;
   ~~~~~~~~~~^~~~

```

Seemingly a `std::variant<int, std::string>` is not able to stream. How can I achieve that I can directly stream the variant to an output stream? 

Expected output:

```
1hi

```