Hello, and thank you for the excellent library! I found a strange behavior using hana::partial as shown in the following snippet:
auto lambda = [](int& i) {
std::cout << i++ << " ";
std::cout << i << std::endl;
};
const int j = 0;
auto partial = hana::partial(lambda, j);
partial();
The above will print 0 1 and change the value of the constant variable i. Is this behavior expected? If I do not store the output of hana::partial, then the code does not compile as desired:
auto lambda = [](int& i) {
std::cout << i++ << " ";
std::cout << i << std::endl;
};
const int j = 0;
hana::partial(lambda, j)(); // <= Error!
Hello, and thank you for the excellent library! I found a strange behavior using
hana::partial
as shown in the following snippet:The above will print
0 1
and change the value of the constant variablei
. Is this behavior expected? If I do not store the output ofhana::partial
, then the code does not compile as desired: