clang++ -Iinclude/ `sdl2-config --cflags` -MP -MD -g -Og -c -Wall -Wextra -Werror -std=c++14 src/ssgv2a.cc -o obj/ssgv2a.o In file included from src/ssgv2a.cc:1: In file included from include/ssgv2a.hh:7: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/iostream:39: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ostream:38: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ios:42: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/ios_base.h:41: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/locale_classes.h:40: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/string:41: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/allocator.h:46: In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10/bits/c++allocator.h:33: /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ext/new_allocator.h:150:23: error: allocating an object of abstract class type 'EditableCurve' { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/alloc_traits.h:512:8: note: in instantiation of function template specialization '__gnu_cxx::new_allocator::construct' requested here __a.construct(__p, std::forward<_Args>(__args)...); ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:551:30: note: in instantiation of function template specialization 'std::allocator_traits>::construct' requested here allocator_traits<_Alloc>::construct(__a, _M_ptr(), ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:683:6: note: in instantiation of function template specialization 'std::_Sp_counted_ptr_inplace, __gnu_cxx::_S_atomic>::_Sp_counted_ptr_inplace' requested here _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...); ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:1371:14: note: in instantiation of function template specialization 'std::__shared_count<__gnu_cxx::_S_atomic>::__shared_count, char const (&)[15]>' requested here : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...) ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr.h:408:4: note: in instantiation of function template specialization 'std::__shared_ptr::__shared_ptr, char const (&)[15]>' requested here : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...) ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr.h:859:14: note: in instantiation of function template specialization 'std::shared_ptr::shared_ptr, char const (&)[15]>' requested here return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a}, ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr.h:875:19: note: in instantiation of function template specialization 'std::allocate_shared, char const (&)[15]>' requested here return std::allocate_shared<_Tp>(std::allocator<_Tp_nc>(), ^ src/ssgv2a.cc:9:31: note: in instantiation of function template specialization 'std::make_shared' requested here auto aperture_editor = std::make_shared("Aperture Curve"); ^ include/ssgv2a.hh:18:20: note: unimplemented pure virtual method 'get_window_id' in 'EditableCurve' virtual uint32_t get_window_id() const = 0; ^ 1 error generated. make: *** [GNUmakefile:14: obj/ssgv2a.o] Error 1