C++中的元编程常用工具

发布时间 2023-04-06 17:38:26作者: ParamousGIS


std::forward  :  通常是用于完美转发的,它会将输入的参数原封不动地传递到下一个函数中,这个“原封不动”指的是,如果输入的参数是左值,那么传递给下一个函数的参数的也是左值;如果输入的参数是右值,那么传递给下一个函数的参数的也是右值。


std::remove_reference_t  :  是一个模板类的类型别名,用于去掉T的引用属性


std::remove_const_t  :  是一个模板类的类型别名,用于去掉T的const属性


std::conditional<bool B, class T, class F> :  提供成员 typedef type,若B在编译时为true则定义为T ,或若B为false则定义为F


std::is_same<class A, class B> :  模板用于检查类型A是否与类型B相同。如果两者相同,则返回布尔值true,否则返回false