【发布时间】:2020-10-26 23:21:28
【问题描述】:
我有许多不同的类类型,每个都有成员函数GetParameterString(),它返回一个特定于类的字符串。我希望能够将这些类类型存储在boost::mpl::list 中,并将GetParameterString 与我从另一个来源收到的测试字符串进行比较。因此,如果我有 3 个类类型,我想执行以下操作:
const std::string input_string = "Random String";
using ClassTypes = boost::mpl::list<ClassA, ClassB, ClassC>;
auto it = boost::mpl::find_if<ClassTypes>( [&input_string](auto next_class){
return input_string.compare(next_class.GetParameterString() )
});
it->CallSomeOtherCommonClassMethod();
这里有两个问题。首先返回值是int 而不是bool。但更重要的是,即使我返回 bool,我如何设置对 boost::mpl::find_if 的调用似乎也不正确。
我的要求之一是坚持使用 boost::mpl。提前致谢!
【问题讨论】: