conform
pragma
C++ 专用
指定 /Zc:forScope
编译器选项的运行时行为。
语法
#pragma conform(
name [ ] [ [, show
[ {,
off
on
| } ] [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,则可为要推送到堆栈的 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() {}