C++ 专用
指定 /Zc:forScope 编译器选项的运行时行为。
语法
#pragma conform(name [ ] [ [, show[ {,on|off} ] [,push|pop{ } ] [,标识符 [,{on|off} ] ] ])
参数
name
指定要修改的编译器选项的名称。 唯一有效的 name 为 forScope。
show
(可选)导致 name 的当前设置(true 或 false)在编译期间以警告消息的方式显示。 例如 #pragma conform(forScope, show)。
on, off
(可选)将 name 设置为 on 将启用 /Zc:forScope 编译器选项。 默认值为 off。
push
(可选)将 name 的当前值推送到内部编译器堆栈。 如果指定 identifier,则可为要推送到堆栈的 on 指定 off 或 值。 例如 #pragma conform(forScope, push, myname, on)。
pop
(可选)将 name 的值设置为位于内部编译器堆栈顶部的值,然后弹出堆栈。 如果使用 pop 指定 identifier,则堆栈将弹回,直到它找到具有 identifier 的记录(也会弹出);堆栈上的下一记录中的 name 的当前值将变为 name 的新值。 如果使用不在堆栈上的记录中的 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() {}