关闭。这个问题是opinion-based .它目前不接受答案。
想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.
6年前关闭。
Improve this question
考虑以下类:
template <class Endianness>
class bitcode
{};
与
Endianness
那可能是:default_endianness
, little_endian
或 big_endian
.问题如下:根据 C++14 和以下 C++17,最佳和通用实践是/将是什么? (通常我指的是标准库或
boost
使用(或将使用)的那些。(+ 为什么?)// The enum option
enum enum_endianness {default_endianness, little_endian, big_endian};
// The enum class option
enum class enum_class_endianness {default_endianness, little_endian, big_endian};
// The class option
class class_default_endianness{};
class class_little_endian{};
class class_big_endian{};
(注意:当然
bitcode
的声明将取决于首选选项。)
最佳答案
您必须选择适合您的目的:
enum
: 主要是为了向后兼容。 enum class
:只有在您事先知道所有标签时才能使用。 class
:任何人都可以引入新标签,您可以使标签包含数据。 关于class - 模板参数 : enum, 类或枚举类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29721865/