prog.cpp: In instantiation of ‘class is_numeric_limits_unsafe<my_abstract_class>’:
prog.cpp:23:8: required from ‘struct is_numeric_limits_safe<my_abstract_class>’
prog.cpp:34:53: required from here
prog.cpp:19:52: error: cannot allocate an object of abstract type ‘my_abstract_class’
prog.cpp:4:8: note: because the following virtual functions are pure within ‘my_abstract_class’:
prog.cpp:4:40: note: virtual int my_abstract_class::x()
prog.cpp: In function ‘int main()’:
prog.cpp:34:12: error: ‘value’ is not a member of ‘is_numeric_limits_safe<my_abstract_class>’
prog.cpp: In instantiation of ‘class is_numeric_limits_unsafe<my_incomplete_class>’:
prog.cpp:23:8: required from ‘struct is_numeric_limits_safe<my_incomplete_class>’
prog.cpp:35:55: required from here
prog.cpp:19:52: error: invalid use of incomplete type ‘struct my_incomplete_class’
prog.cpp:5:8: error: forward declaration of ‘struct my_incomplete_class’
prog.cpp:35:12: error: ‘value’ is not a member of ‘is_numeric_limits_safe<my_incomplete_class>’