我们有一个 Java 消息传递 API,我们正在将其翻译成 C++。消息通常具有简单的数据类型,如字符串、整数、双精度等。构造消息时,我们将所有成员变量初始化为 API 识别为“空”值的默认值(即从不设置为任何值),例如Integer.MAX_VALUE
对于 int 类型。任何被视为 null 的字段都不会被序列化和发送。
在 Java 中,字符串会自动初始化为,null
因此很容易区分为 null 的字符串字段与为空字符串的字符串(这是在消息中发送的合法值)。
我不确定在 C++ 中处理此问题的最佳方法,因为字符串会自动初始化为空字符串,而空字符串是通过 API 发送的合法值。我们可以将字符串默认为某个控制字符(这在我们的 API 中不是合法值),但我想知道是否有更传统或更好的方法来做到这一点。
我们都是 C++ 新手,所以我们可能忽略了一些明显的方法。