假设我们拥有它struct X;
并且我们使用 C++11 编译器(例如 gcc 4.7)。当且仅当,比如说,我想发出一些代码和属性opt = true
。
template <bool opt>
struct X {
void foo() {
EMIT_CODE_IF(opt) {
// optional code
}
// ...common code...
}
int optional_variable; // Emitted if and only if opt is true
};
- 至于代码,我认为正常
if
就足够了。 - 但是对于属性,如果不使用它们(何时
opt = false
),编译器会自动省略它们吗?我绝对不希望他们在那里的时候opt = false
。