[问题] C++ 语法问题

楼主: yshihyu (yshihyu)   2016-03-04 00:17:03
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
https://github.com/OSVR/OSVR-Core/blob/master/plugins/videoimufusion/VideoIMUFusion.cpp
上面网址的156 行
StartupData()
: last(getNow()), positionFilter(filters::one_euro::Params{}),
orientationFilter(filters::one_euro::Params{}) {}
上面是 class constructor initializer list
不懂 positionFilter(filters::one_euro::Params{}) 为什么可以 assign, 它们之间没有class 不同class 也没有继承关系
filters::one_euro::Params{} 是什么特殊语法吗?
Params 型态定义如下
struct Params {
Params() : minCutoff(1), beta(0), derivativeCutoff(1) {}
Params(double minCut, double b, double dCut = 1)
: minCutoff(minCut), beta(b), derivativeCutoff(dCut) {}
double minCutoff;
double beta;
double derivativeCutoff;
};
filters::OneEuroFilter<Eigen::Vector3d> positionFilter;
positionFilter 型态如下 , 因为程式码有点长, 我贴网址在178行
https://github.com/OSVR/OSVR-Core/blob/master/inc/osvr/Util/EigenFilters.h
谢谢
作者: BlazarArc (Midnight Sun)   2016-03-04 00:43:00
? constructor 不就写了吗?explicit OneEuroFilter(Params const &p)
楼主: yshihyu (yshihyu)   2016-03-04 00:50:00
大致董了... 那Params{} 这语法算是?
作者: BlazarArc (Midnight Sun)   2016-03-04 00:55:00
C++11 uniform initialization
作者: LPH66 (-6.2598534e+18f)   2016-03-04 02:48:00
en.cppreference.com/w/cpp/language/list_initialization

Links booklink

Contact Us: admin [ a t ] ucptt.com