我有一个函数,其确切行为由一组标志控制。其中大多数通常是错误的。将它们全部作为参数很快就会变得非常混乱。
我可以为标志创建一个枚举:
enum ParseFlags { assignmentPossible = 1, commaDelimits = 2, isConst = 4 };
PExpression ParseExpr(unsigned int flags);
更好一点:现在,在调用函数时,我只需要指定我想要设置的值,而不是一长串bool
s。
但是,我想知道是否有更优雅或更通用的方式将选项子集传递给函数。如果我有非布尔选项怎么办?
我正在寻找一种 C++(Boost 可以)方法来调用如下函数:
ParseExpr({ isConst: true; maxDepth: 5 });
我可以省略所有我想保留默认值的值。
为此存在哪些技术和/或库?