gpt4 book ai didi

c++ - 使用类似枚举的类,或具有特定值

转载 作者:行者123 更新时间:2023-12-01 14:15:52 25 4
gpt4 key购买 nike

我希望我的函数接受压缩级别(可以取值 0..9)。我希望用户能够手动设置级别 Compression(7) 或使用一些默认值,例如 Compression::HighCompression::Medium

我想到了以下几点:

class Compression {
public:
Compression(size_t level) : m_level(level) {};
static const Compression Medium;
static const Compression High;
size_t get() const { return m_level; };
private:
size_t m_level;
};

const Compression Compression::High{9};
const Compression Compression::Medium{5};

问题是我正在开发一个只有 header 的库,这样做会导致“‘Compression::High’和‘Compression::Medium’的多重定义”。如何解决?


编辑

挑战:

  • 我只想让 一个 函数重载 foo(Compression) 作用于 Compression 选项 (foo(size_t) 已经用于其他用途)。
  • 我坚持使用 C++11(可能是 C++14,但不会更高)。

最佳答案

GCC 版本 9.3.0 接受该代码 (C++17):

inline const Compression Compression::High{9};
inline const Compression Compression::Medium{5};

请注意 inline 字。

关于c++ - 使用类似枚举的类,或具有特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62450119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com