我一直在挠头太久了,我发现使用 MPL 很难解决,希望有人能让我开始。这是我正在开发的不使用 MPL 的类的一些部分代码。我最终想在编译时实现这个类。这段代码可能没有意义,但我不想要 MPL 中的所有解决方案——希望我能自己实现(见下文以获得特别帮助)。
class define_cell_type{
public:
define_cell_type () = default;
define_cell_type (const std::string& name_of_cell) :
cName {name_of_cell} {};
double& add_variable (const std::string& Name,
const double& init_value,
VARIABLE declr_type = VARIABLE::STATIC_V)
{
vInit_val.push_back(init_value);
vData.push_back( std::make_tuple(Name) );
return vInit_val.back();
};
private:
std::string cName;
std::vector<double> vInit_val;
std::vector<variable_tuple> vData;
};
首先,如何在 double 类型的 mpl::vector 上执行 push_back?这是一个我想开始的例子,类似于我正在开发的类中的函数。
std::vector<double> state;
double& add_variable ( const double& init_val)
{
state.push_back(init_val);
return state.back();
}
int main() {
auto var1 = add_variable (12.2);
auto var2 = add_variable (1.2);
auto var2 = add_variable (6.4);
}
我能得到的只是这样的东西
typedef mpl::vector<double> state;
typedef mpl::push_back<state,double>::type types;
如果有人让我开始,我将不胜感激,生成一个编译时向量,其值推回上面的示例