我需要使用作用域枚举,以便我可以将它们作为特定类型传递给我们的序列化程序.我给了enum成员的显式整数值Enum1.
我已将两个与上述描述相匹配的范围内的枚举放入一个位域中
enum class Enum1 {
value1 = 0x0,
value2 = 0x1,
value3 = 0x2
};
enum class Enum2 {
value1 = 0x0,
value2,
value3,
// ...
value14
};
struct Example {
Enum1 value1 : 2;
Enum2 value2 : 6;
}
Run Code Online (Sandbox Code Playgroud)
现在无论我在哪里使用该Example类型,我都会收到警告"'Example :: value1'太小而无法容纳'Enum1'的所有值",同样适用于Enum2.请注意,这不是我们所定义的值的情况下,我们不关心在所有与这些以外的值.
这在我们的构建过程中是一个非常严重的分心 - 项目庞大而复杂,我们不希望扫描其中的许多警告(并且有很多).
我找了一个GCC(G ++)标志来禁用特定的警告.有没有我可以通过命令行?理想情况下,如果可能的话,我会使用警告编译指示在本地禁用它.
此时几乎没有改变代码结构的余地,但我们确实可以删除这些虚假警告.
编辑:添加标识已更改的范围枚举.
所以我的目录结构看起来像这样:
\Project-Dir\
|- lib\
| |- flask\
| |- ...
|- module1_dir\
| |- __init__.py
| |- app.yaml
| |- app.py
| |- ...
|- module2_dir\
| |- __init__.py
| |- app.yaml
| |- app.py
| |- ...
|- ...
Run Code Online (Sandbox Code Playgroud)
内 app.py
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib')))
Run Code Online (Sandbox Code Playgroud)
我在同一个根目录下有两个模块.它们一起部署到App Engine.他们也共享相同的库.这些库都非常强大,所以我试图将它们放在共享目录(lib)中.
我正在dev_appserver.py从\Project-Dir\和传球两个.yamls.我sys.path的设置很好,包括lib\目录.然而沙盒似乎固执地坚持认为图书馆lib\ 不存在.
我确定我只是遗漏了一些像配置改变一样的东西.或者App Engine真的只是不支持这样的设置?
编辑:当我在外面运行它时,导入工作正常dev_appserver.py.