草庐IT

c++ - CRTP 避免动态多态性

如何在C++中使用CRTP来避免虚成员函数的开销? 最佳答案 有两种方法。第一个是为类型的结构静态指定接口(interface):templatestructbase{voidfoo(){static_cast(this)->foo();};};structmy_type:base{voidfoo();//requiredtocompile.};structyour_type:base{voidfoo();//requiredtocompile.};第二个是避免使用对基址的引用或指向基址的指针,并在编译时进行连接。使用上述定义,您可

c++ - CRTP 避免动态多态性

如何在C++中使用CRTP来避免虚成员函数的开销? 最佳答案 有两种方法。第一个是为类型的结构静态指定接口(interface):templatestructbase{voidfoo(){static_cast(this)->foo();};};structmy_type:base{voidfoo();//requiredtocompile.};structyour_type:base{voidfoo();//requiredtocompile.};第二个是避免使用对基址的引用或指向基址的指针,并在编译时进行连接。使用上述定义,您可