<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="">修饰器</string>
    <string name="">对于需要修改出站 WebSocket HTTP 升级请求或响应（或两者都需要）的程序，流支持一个可选属性，称为“修饰器”。修饰器是一个函数指针或可调用对象，在实现发送 HTTP 消息前会被调用。修饰器接收一个可修改的消息引用，允许对其进行修改。该系统的接口使用以下类型：</string>
    <string name="">WebSocket 修饰器接口</string>
    <string name="">名称</string>
    <string name="">描述</string>
    <string name="">[link beast.ref.boost__beast__websocket__request_type `request_type`]</string>
    <string name="">该类型表示传递给修饰器的对象，用于表示 HTTP 升级请求。</string>
    <string name="">[link beast.ref.boost__beast__websocket__response_type `response_type`]</string>
    <string name="">该类型表示传递给修饰器的对象，用于表示 HTTP 升级响应。</string>
    <string name="">[link beast.ref.boost__beast__websocket__stream_base__decorator `stream_base::decorator`]</string>
    <string name="">该类型的对象用于保存修饰器，并通过 `set_option` 将其设置在流上。</string>
    <string name="">[link beast.ref.boost__beast__websocket__stream.set_option `stream::set_option`]</string>
    <string name="">该函数用于在流上设置 `stream_base::decorator`。</string>
    <string name="">以下声明一个普通函数，该函数用于装饰出站 HTTP 请求。</string>
    <string name="">使用修饰器时，必须在进行任何握手之前将其设置在流上。以下代码将修饰器设置在流上，供后续所有 `accept` 或 `handshake` 调用使用：</string>
    <string name="">也可以使用函数对象。小型函数对象不会产生内存分配。以下代码声明并设置一个函数对象作为修饰器：</string>
    <string name="">也可以使用 lambda 表达式代替具名函数对象：</string>
    <string name="">单个修饰器也可以同时处理请求和响应，只需为这两种类型提供重载，可以通过泛型 lambda（C++14 及更高版本）或类来实现，如下所示：</string>
    <string name="">实现会通过退化拷贝的方式获取用作修饰器的可调用对象的所有权。只可移动的类型也同样适用：</string>
    <string name="">如果修饰器修改以下字段，将导致未定义行为：</string>
</resources>
