成员初始化部分中的复杂语句?

Get*_*ree 2 c++ member-initialization

我有这个:

struct myClass{
    multiset<string,binPred<string> > values ;

    myClass(const char param1, const char param2) : values(less<string>())
    { }
} ;
Run Code Online (Sandbox Code Playgroud)

我需要的初始化values成员有根据的值不同的函子param1param2.不幸的是,决定使用哪个仿函数的逻辑并不那么简单,而且一旦values构造我就无法改变它的相关比较仿函数.

所以...我需要将所有决策逻辑放在成员初始化部分,但我不知道如何使用?:运算符.
是否有可能在那里放置更复杂的陈述?(像switchstaments)

如果没有,有没有办法延迟构造,values所以我可以在构造函数的主体中初始化它?

谢谢.

小智 9

调用函数:

myClass(const char param1, const char param2) 
             : values( MakeComplicatedDecision( xxx ) ) {
}
Run Code Online (Sandbox Code Playgroud)

并将你的逻辑放在函数中.