blob: 8d4b6cd5b64fe21a390aea99e0d34cb00974f22f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <iostream>
#include <string>
#include <any>
class channel {
private:
std::any val;
public:
void operator<<(auto & v) {
val = v;
}
void operator>>(auto & v) {
while (!val.has_value());
v = std::any_cast<decltype(v)>(val);
val.reset();
}
};
int main() {
channel c;
int x = 1;
c << x;
std::string y = "Hello world";
c >> x;
c << y;
std::cout << x << std::endl;
c >> y;
std::cout << y << std::endl;
}
|