在C++中是否有一种方法可以强制在编译时进行函数调用,以使得这个调用将被允许:
obj.reset().setParam1(10).setParam2(20);
但这个代码将无法编译通过:
obj.reset().setParam1(10);
我希望避免在一个函数中设置所有参数,因为有太多需要设置的参数;所以我更喜欢使用类似于命名参数习语的东西。
编辑:替代语法可以是:
obj.reset(setParam1(10), setParam2(20));
或者
obj.reset(setParam1(10).setParam2(20));