• 2024-08-22CRTP 和静态多态
    c++古典面试问题之一:面向对象编程三大特性--封装,继承,多态c++古典面试问题之二:如何实现多态--当基类指针指向派生类对象,并通过这个指针调用在派生类中被重写的虚函数  基于上述知识点,今天我们讲下另一种多态实现方式:CRTP(curiouslyrecurringtemplatepattern)  虚函
  • 2024-01-16crtp 接口声明
    #include<vector>#include<utility>//对于std::move#include<type_traits>#include<iostream>usingnamespacestd;template<typenameT>structA{A&f(){return*this;}//T&f(){returnstatic_cast<T&a
  • 2023-04-22c++ CRTP 中判断 Derived 中有没有某个成员函数
    //省略HasMembertemplate<Dervied>classB{static_assert(HasMember<Derived>());}classA:publicB<A>{public:voidMember();}这样的代码是编译不过的,因为A还没有完全定义时,static_assert就会fail,但是将static_assert放到某个函数里是可以编译过的。
  • 2022-11-25浅谈 CRTP:奇异递归模板模式
    浅谈CRTP:奇异递归模板模式前言建议先看一遍文末的参考资料!建议先看一遍文末的参考资料!建议先看一遍文末的参考资料!思维导图一、CRTP是什么CRTP全称:​​CuriouslyRec
  • 2022-11-23CPP2nd CRTP Facade 模式
    书中源码不全,看看我这个?#include<iostream>#include<type_traits>#include<vector>#include<iterator>template<typenameDerived,typenameValue,typenameCa