在N2347的示例中,如果新的强类型枚举(C++ 11)与当前(C++ 03)进行比较,则可以通过"旧"枚举的示例来解释:
enum Version { Ver1 = 1, Ver2 = 2 };
struct Packet {
Version ver;
// ... more data ...
// bad, size can vary by implementation
Version getVersion() const { return ver; }
};
Run Code Online (Sandbox Code Playgroud)
我想知道:这里的"变化"意味着编译器甚至可以选择8位表示,即枚举元素只占用一个单词?或者是否保证最小长度,并且选择可能只在int和之间long?
换句话说,如果我有这样的Version枚举:
enum VersionXyz { Ver1 = 100, Ver2 = 200 };
struct Packet {
VersionXyz ver;
// ... more data ...
};
Run Code Online (Sandbox Code Playgroud)
难道这往往只8bit在Packet.并在软件更新后:
enum VersionXyz { …Run Code Online (Sandbox Code Playgroud) 自从我用Python连接到Oracle以来,已经有很长一段时间了.我想要一个只有python的解决方案,但这不可行,我想,对吧?我将在Linux机器(64位Ubuntu或Debian)上使用它.
很久以前我用过cxOracle,然后我听说过mxOracle.什么库更新,更好维护,更安全等等.或者我应该使用别的东西?
可能重复:
C++是否为全局和类静态变量调用析构函数?
什么是寿命
MyClass myclass;static MyClass myclass;const MyClass myclass;static const MyClass myclass;static MyClass myclass;在初始化实际发生时函数本地static constexpr MyClass myclass;in C++ 11尤其是它们会在正常程序结束时被销毁(即main没有错误)?标准在哪里如此陈述.
我注意到私有析构函数阻止了所有这些变量的创建.但是,如果我没记错的话,某处已明确提到某些静态数据可能会被放入静态数据部分并加载预先构建的部分.这对我来说意味着不会召唤析构函数.这意味着我可以定义这样一个变量......
我有两个需要合并的列表,但我看到的正常合并问题似乎没有帮助.
l1 = (0,1,2,3)
l2 = ('A','B','C','D')
Run Code Online (Sandbox Code Playgroud)
我需要它成为
((0,'A'), (2,'B'), (3,'C'))
Run Code Online (Sandbox Code Playgroud)