conform
C++ 专用
指定 /Zc:forScope 编译器选项的运行时行为。
#pragma conform(name [, show ] [, on | off ] [ [, push | pop ] [, identifier ] ] )
参数
name
指定要修改的编译器选项的名称。 唯一有效的 name 为 forScope。show(可选)
导致 name 的当前设置(true 或 false)在编译期间以警告消息的方式显示。 例如 #pragma conform(forScope, show)。on、off(可选)
将 name 设置为 on 将启用 /Zc:forScope 编译器选项。 默认值为 off。push(可选)
将 name 的当前值推送到内部编译器堆栈。 如果您指定 identifier,则可为要推送到堆栈的 name 指定 on 或 off 值。 例如 #pragma conform(forScope, push, myname, on)。pop(可选)
将 name 的值设置为位于内部编译器堆栈顶部的值,然后弹出堆栈。 如果使用 pop 指定 identifier,则堆栈将弹回,直到它找到具有 identifier 的记录(也会弹出);堆栈上的下一记录中的 name 的当前值将变为 name 的新值。 如果使用不在堆栈上的记录中的 identifier 指定 pop,则将忽略 pop。identifier(可选)
可以与 push 或 pop 命令包含在一起。 如果使用了 identifier,则还可以使用 on 或 off 说明符。
示例
// pragma_directive_conform.cpp
// compile with: /W1
// C4811 expected
#pragma conform(forScope, show)
#pragma conform(forScope, push, x, on)
#pragma conform(forScope, push, x1, off)
#pragma conform(forScope, push, x2, off)
#pragma conform(forScope, push, x3, off)
#pragma conform(forScope, show)
#pragma conform(forScope, pop, x1)
#pragma conform(forScope, show)
int main() {}