铛++抱怨未初始化变量:通用模板化枚举空值
template<typename TEnum> void func() {
TEnum enumVar;
// ...
if(something()) enumVar = someValue();
// ...
if(something()) doSomethingWith(enumVar); // <- clang++ tells me
// enumVar may be uninitialized
}
通常情况下,为了避免这种警告,枚举可以有一个Unknown = -1
值或类似的东西 - 但遗憾的是这里的枚举类型由用户以typename TEnum
传递,所以我不知道它是否包含“空值”。
有什么办法可以解决这个问题吗?或者我应该忽略/抑制警告?
布尔is_something =东西(),如果(is_something)可能会有所帮助。它可能会破坏逻辑(第二件事可能会返回一个不同的值),因此警告。 –
如何做'TEnum enumVar = TEnum();'? – billz