我正在使用具有自己数据类型的库(无权访问源),例如: library :: object :: library_string,library :: object :: library_number。有一个枚举存储在类型旁边,告诉你类型(即library :: object :: type)
库提供了库::对象上的方法,如isString(),isNumber()来查询类型。该库还提供了getString(),getNumber(),如果在错误的类型上调用它们,则抛出异常。
我正在使用我的应用程序中的库,我想用尽可能少的繁琐代码填充我的C ++原语。一个问题是因为library :: object可能是null或意外类型,我应该使用isXXXX()检查类型,然后使用getXXXX()来填充我的C ++模型。
要防止像myModel.myPrimativeVariable = isXXXX()这样的大量代码? getXXXX(): null_condition_type_for_this_type,如“”或0
实现这一目标最好的是什么?遗憾的是,库没有提供tryGetValue()方法。
我可以写出一堆各种类型的函数(不同的签名),所以我可以这样做:
myModel-> myInt = getIntValue(objectInstance) myModel-> myString = getStringValue(objectInstance)
其中objectInstance是一个库::对象实例
或者我可以使用模板并且有一个函数试图将类型转换为模板类型。
我之前遇到过这个'问题'并且通常选择写包装器,但它感觉很幼稚。我觉得这一定是一个“解决”的问题。我觉得有更好的方法吗?
由于