template <typename Derived>
class Base{
public:
void interface (){
static_cast<Derived *>(this) ->implementation ();
}
};
class Der: public Base<Der>{
public:
void implementation (){}
};
int main(){
return 0;
}
dGVtcGxhdGUgPHR5cGVuYW1lIERlcml2ZWQ+CmNsYXNzIEJhc2V7CnB1YmxpYzoKdm9pZCBpbnRlcmZhY2UgKCl7CnN0YXRpY19jYXN0PERlcml2ZWQgKj4odGhpcykgLT5pbXBsZW1lbnRhdGlvbiAoKTsKfQp9OwoKY2xhc3MgRGVyOiBwdWJsaWMgQmFzZTxEZXI+eyAKcHVibGljOgp2b2lkIGltcGxlbWVudGF0aW9uICgpe30KfTsKCmludCBtYWluKCl7CgpyZXR1cm4gMDsKfQ==