0

我们有大量带有“功能位”的遗留代码,您可以在运行时切换功能,例如

if (GET_FEATURE ("foo")) {
   // foo foo things
}

or

if (!GET_FEATURE ("bar")) {
   // do "non-bar" things
}

or even

if (GET_FEATURE ("foo") && state->foo_might_apply ()) {
   // do foo things
}

我希望能够运行过滤器并说“foo”已启用,并获得类似的代码

// do foo things     ("if" test gone)

if (!GET_FEATURE ("bar")) {
    // do bar things  (this whole block untouched)
}

if (stat->foo_might_apply ()) {
    // do foo things  ("if" test simplified)
}

我知道 coan 可以为#ifdef 块做这些事情。我想要一些更深入代码的东西。

有任何想法吗?

4

0 回答 0