零开销的实用程序,可在编译时防止错误
type_safe 提供了零开销的抽象,利用 C++ 的类型系统来防止错误。
这里和后面的抽象都没有开销,在启用优化时它们没有成本 但可能会导致调试模式下的运行时间略低, 特别是当为该库启用断言时。 图书馆的功能无法在本 readme 中详细解释, 我强烈建议您查看 第一篇 和 第二篇 博文以及示例。
ts::integer<T> - 一个零开销的封装器,用于内置整型
没有默认构造函数,以强制有意义的初始化
没有“损失性”转换(即从更大的类型或具有不同符号位的类型)
没有与浮点数或具有不同符号位的整型类型的混合算术运算
没有与浮点数的混合比较
在发行版模式下,溢出/溢出是未定义的行为 - 即使对于 unsigned 整型,也能实现编译器优化
ts::floating_point<T> - 一个零开销的封装器,用于内置浮点数
没有默认构造函数,以强制有意义的初始化
没有“损失性”转换(即从更大的类型)
没有“损失性”比较
没有与整型类型的混合算术/比较
ts::boolean - 一个零开销的封装器,用于 bool
没有默认构造函数,以强制有意义的初始化
没有从整型值的转换
没有算术运算符
诸如 ts::uint32_t 或 ts::size_t 的别名,它们根据宏是封装类型还是内置类型
ts::object_ref<T> - 非空指针
ts::index_t 和 ts::distance_t - 索引和距离整数类型,仅提供一部分操作
ts::array_ref<T> - 非空引用,指向连续存储空间
ts::function_ref<T> - 非空引用,指向函数
ts::flag - 改进的标志类型,比普通的 bool 或 ts::boolean 更好
暂无开放 Issues,或尚未同步最近议题。