创建一个有限制的数字数据类型,整数介于-10和10之间

时间:2019-01-10 20:05:48

标签: c++ types

我确实在我的应用程序中需要一个新的数据类型,该数据类型只能存储从-10到10的数字。是否有一种方法可以创建具有特定值的数据类型,如果该值无效,则会引发错误?我用过:

typedef int digit;

发生的事情是实际上创建了一个int的新数据类型。 我也尝试过:

typedef int{-10 > int value < 10} digit;

但它提出了这一点:

exit status 1
main.cpp:3:12: error: expected unqualified-id before '{' token
typedef int{-10 > int value < 10} digit;
           ^
main.cpp:3:35: error: 'digit' does not name a type; did you mean 'div_t'?
typedef int{-10 > int value < 10} digit;
                                    ^~~~~
                                  div_t

1 个答案:

答案 0 :(得分:1)

C ++没有这种功能。在某些情况下会很好,但是用这种语言提供语言并不是一件容易的事(某种程度上使用效率不高)。

您可以创建一个包装int并进行自身边界检查的类(或者您希望类型起作用)。然后,您还必须包装所有算术运算。不太繁重,但脖子有点痛。而且,效率也不高(每个单个算术运算都需要一个分支!)。

通常,我们只使用int并在需要时在更高级别上对代码逻辑进行检查。在不了解您的用例的情况下,我无法提出具体建议。

Here's an example会完成一半。