/*
 * demo_versions/ternary_lvalue.cpp
 * --------------------------------------------------------------------------
 * 演示：三目运算符 ?: 作为左值 —— C++ 独有，C 不允许。
 *
 * 来源：wiki 块 [58954439:18]「3.8 三目运算符功能增强」：C 中三目返回值（右值），
 * C++ 中三目返回的是「两个操作数中公共类型的引用」（可为左值），故可被赋值。
 *
 * 验证：
 *   g++ -std=c++17 → PASS（三目可作左值）
 *   gcc -std=c17   → ERROR （三目不可作左值，lvalue required as left operand）
 *
 * 运行：
 *   tools/std_probe.py --lang c++ --file tools/demo_versions/ternary_lvalue.cpp
 *   tools/std_probe.py --lang c   --file tools/demo_versions/ternary_lvalue.cpp
 * --------------------------------------------------------------------------
 */
#include <cstdio>

int main() {
    int a = 1, b = 2;
    /* C++：三目表达式可作为左值被赋值 */
    (a > b ? a : b) = 100;        // 把较大者赋为 100
    printf("a=%d b=%d\n", a, b);
    return 0;
}
