#include <type_traits>
template < typename T>
using EnableIfInt =
std:: enable_if_t < std:: is_arithmetic < T> :: value > ;
template < typename T, typename Enable = void >
class Class {
static_assert( sizeof ( T) == 0 , "Nie wolno" ) ;
} ;
template < typename T>
class Class< T, EnableIfInt< T>> {
public :
Class( ) { } ;
void Method( ) ;
} ;
template < typename T>
void Class< T, EnableIfInt< T>> :: Method ( ) {
}
int main( ) {
Class< int > class1;
Class< int [ 2 ] > class2;
class1.Method ( ) ;
}
I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnVzaW5nIEVuYWJsZUlmSW50ID0KICBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfYXJpdGhtZXRpYzxUPjo6dmFsdWU+OwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEVuYWJsZSA9IHZvaWQ+CmNsYXNzIENsYXNzIHsKICBzdGF0aWNfYXNzZXJ0KHNpemVvZihUKSA9PSAwLCAiTmllIHdvbG5vIik7Cn07Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KY2xhc3MgQ2xhc3M8VCwgRW5hYmxlSWZJbnQ8VD4+IHsKcHVibGljOgogICAgQ2xhc3MoKSB7fTsKICAgIHZvaWQgTWV0aG9kKCk7Cn07CiAKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnZvaWQgQ2xhc3M8VCwgRW5hYmxlSWZJbnQ8VD4+OjpNZXRob2QoKSB7CiAKfQogCmludCBtYWluKCkgewogICAgQ2xhc3M8aW50PiBjbGFzczE7CiAgICBDbGFzczxpbnQgWzJdPiBjbGFzczI7CiAgICBjbGFzczEuTWV0aG9kKCk7Cn0=