#include <iostream>
#include <array>
// class base {
// public:
// virtual static constexpr size_t nums() = 0
// }
template<size_t num>
class derived1 {//: public base {
public:
static constexpr size_t nums() {return num;}
derived1() {}
};
template<size_t num>
class derived2 {// : public base {
public:
static constexpr size_t nums() {return num;}
derived2() {}
};
int main() {
std::cout << derived2<20>::nums() << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YXJyYXk+CgovLyBjbGFzcyBiYXNlIHsKLy8gcHVibGljOgovLyAJdmlydHVhbCBzdGF0aWMgY29uc3RleHByIHNpemVfdCBudW1zKCkgPSAwCi8vIH0KCnRlbXBsYXRlPHNpemVfdCBudW0+CmNsYXNzIGRlcml2ZWQxIHsvLzogcHVibGljIGJhc2UgewpwdWJsaWM6CglzdGF0aWMgY29uc3RleHByIHNpemVfdCBudW1zKCkge3JldHVybiBudW07fQoJZGVyaXZlZDEoKSAge30KfTsKCnRlbXBsYXRlPHNpemVfdCBudW0+CmNsYXNzIGRlcml2ZWQyIHsvLyA6IHB1YmxpYyBiYXNlIHsKcHVibGljOgoJc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbnVtcygpIHtyZXR1cm4gbnVtO30KCWRlcml2ZWQyKCkgIHt9Cn07CgppbnQgbWFpbigpIHsKCglzdGQ6OmNvdXQgPDwgZGVyaXZlZDI8MjA+OjpudW1zKCkgPDwgIlxuIjsKCXJldHVybiAwOwp9