30 lines
496 B
C++
30 lines
496 B
C++
#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;
|
|
}
|