P0847提出了this
对成员函数使用显式参数的可能性。
在这个提议带来的其他好处中,没有 C、R 甚至 T 的 CRTP也有很大的新可能性。
在 C++中实现泛型的一种常见做法clone
是基于 CRTP,例如,请参阅此 SO 帖子。
鉴于我们需要clone
(virtual
或至少,表现为虚拟),以允许:
Shape* pCopy = pShape->clone(); // get a copy of the correct runtime type
并且鉴于提议是不应声明具有显式 this 参数的成员函数virtual
。
是否还有一种方法可以使用 P0847 来实现具有动态行为且没有 CRTP的通用克隆?