编译器认为我的MatrixXd构造是一个函数而不是成员

时间:2017-08-24 13:51:13

标签: c++ eigen

我正在创建一个类,该类应该有一个矩阵作为受保护的成员在Eigen库的类型MatrixXd的头类中声明。问题是,如果我将其声明为MatrixXd name(5, 5);,其中矩阵的维度在括号之间,则编译器将其视为我的类的方法,而不是成员。

你能帮助我吗?

1 个答案:

答案 0 :(得分:2)

您所描述的内容称为the most vexing parse,意味着可以解析为函数的所有内容都应该是。我们可以通过更改语法来解决这个问题。

在C ++ 11中,我们可以使用初始化列表语法:

df3 = df1.groupby('Name').apply(
    lambda x: pd.Series(
        [operation1(x), operation2(x), operation3(x)],
        index=['value1','value2','value3']
    ))

否则,转换其中一个参数可能也有效:

    value1  value2  value3
Name            
A   71.0    158.0   0.500000
B   0.0     10.0    1.000000
C   68.0    156.0   0.666667