|
|
1
4
使用模板元编程 这是我为解决你的问题(至少部分)而想出的办法。通过使用模板元编程,您可以利用编译器为您完成大部分工作。对于那些从未见过此类代码的人来说,这些技术看起来很奇怪,但值得庆幸的是,大多数复杂性都可以隐藏在头部中,用户只能以整洁简洁的方式与库交互。 一个示例类定义及其使用 下面是一个例子,说明定义一个类需要什么:
使用类
大部分工作由
关于存储
在当前的实现中,在调用了所有的setter并声明了对象之后,字段最终存储在
局限性 这个实现只允许将积分类型用作字段(short、int、long、bool、char的所有类型)。不过,您仍然可以提供对多个字段执行操作的setter。例子:
完整代码 这个小库实现的完整代码可以在这里找到: 其他注意事项 这段代码已经过测试,并与g++和clang的C++11实现一起工作。 它已经好几个小时没有经过测试了,所以当然可能会有漏洞,但它应该为你提供一个良好的基础。我希望这能有所帮助! |
|
2
3
在C++14中,对
Live Example
使用Clang 3.4 SVN中继
我不确定具有30个参数的类是否是个好主意(单响应原则等等),但至少上面的代码在setter的数量上是线性的,每个setter只有1个参数。还要注意的是,只有两个构造函数:默认构造函数(从类内初始值设定项中获取参数)和完整构造函数(在最终情况下使用30 int)。 |
|
|
Setu · 如何将元素从std::map移动到std::vector 1 年前 |
|
Konvt · 标准库中异常构造函数参数类型问题 1 年前 |
|
|
bourne · 关于操作员超载的澄清 1 年前 |