如何理解C ++模板参数,例如“ <typename name1 :: name2 =“”>”?

时间:2019-05-22 06:31:16

标签: c++ eigen

我正在学习有关本征库的头文件。在如下所示的类定义中:

class Utility
{
  public:
    template <typename Derived>
    static Eigen::Quaternion<typename Derived::Scalar> deltaQ(const Eigen::MatrixBase<Derived> &theta)
    {
        typedef typename Derived::Scalar Scalar_t;

        Eigen::Quaternion<Scalar_t> dq;
        ...

我知道“派生”是模板数据类型,函数“ deltaQ”的参数使用它:

<Derived>

但是函数返回类型是什么意思

<typename Derived::Scalar>

是什么意思?我找不到这种用法,这是某种特殊的C ++技术吗? 非常感谢你!

0 个答案:

没有答案