#include <iostream>
struct A {
static const int bar = 42;
};
void foo(const int x) { // does not work with (const int&)
std::cout << x << std::endl;
}
template<int val>
struct plusOne {
enum {value = val+1};
};
int main() {
foo(A::bar);
std::cout << plusOne<A::bar>::value << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEEgewoJc3RhdGljIGNvbnN0IGludCBiYXIgPSA0MjsKfTsKCnZvaWQgZm9vKGNvbnN0IGludCB4KSB7IC8vIGRvZXMgbm90IHdvcmsgd2l0aCAoY29uc3QgaW50JikgCglzdGQ6OmNvdXQgPDwgeCA8PCBzdGQ6OmVuZGw7Cn0KCnRlbXBsYXRlPGludCB2YWw+CnN0cnVjdCBwbHVzT25lIHsKCWVudW0ge3ZhbHVlID0gdmFsKzF9Owp9OwoKCmludCBtYWluKCkgewoJZm9vKEE6OmJhcik7CglzdGQ6OmNvdXQgPDwgcGx1c09uZTxBOjpiYXI+Ojp2YWx1ZSA8PCBzdGQ6OmVuZGw7CglyZXR1cm4gMDsKfQ==