我认为这是一个非常基本的问题,但我找不到类似的东西.
以下代码无法编译(C3668)
struct Param { int a; int b; }; template <typename T> struct Foo { virtual void doStuff (const T) const = 0; }; struct Bar : public Foo<Param&> { void doStuff (const Param &) const override { /*...*/ } };
它将在删除const后编译
void doStuff (const Param &)
我在这里错过了什么?我希望强制执行const Param&在Foo :: doStuff中使用我的界面声明.相反它似乎被删除了.