prog.cpp:8:15: error: 'virtual void Impl::foo(int&)' marked 'override', but does not override
virtual void foo(int& a) override {}
^
prog.cpp: In function 'int main()':
prog.cpp:13:7: error: cannot declare variable 'i' to be of abstract type 'Impl'
Impl i;
^
prog.cpp:7:8: note: because the following virtual functions are pure within 'Impl':
struct Impl : Interf {
^
prog.cpp:5:18: note: virtual void Interf::foo(const int&)
virtual void foo(const int& a) = 0;
^