一段代码(1),来自maplab

看源码看到下面这段,解释一下:

template<typename Type, typename ... Arguments>

inline std::shared_ptr<Type> aligned_shared(Arguments&&... arguments)

{

typedef typename std::remove_const<Type>::type TypeNonConst;

//首先std::remove_const<Type>::type TypeNonConst:就是,如果Type有定义const类型,则TypeNonConst与Type同类型但是去掉const,否则与Type完全一样。(从定义的名字上也能很好的理解)

//typename std::remove_const<Type>::type TypeNonConst:加上typename的目的是告诉编译器std::remove_const<Type>::type是类型,因为在模板实例化前,鬼晓得std::remove_const<Type>是什么东东。

//所以对于有模板类型的变量,要想重命名,就要用typedef + typename

return std::allocate_shared<Type>(Eigen::aligned_allocator<TypeNonConst>(),std::forward<Arguments>(arguments)...);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值