BOOST_PROTO_DEFINE_ENV_VAR — 定义一个类型和一个该类型的全局变量,可用于初始化 Proto 转换环境中的槽。
// In header: <boost/proto/transform/env.hpp>
BOOST_PROTO_DEFINE_ENV_VAR(Type, Name)Proto 原始转换在其第三个参数中可以选择性地接受一个环境,该环境是环境键/值存储。使用 BOOST_PROTO_DEFINE_ENV_VAR() 宏来定义键。
有关此宏创建的类接口的示例,请参阅 proto::data_type 的描述。
示例
BOOST_PROTO_DEFINE_ENV_VAR(mykey_type, mykey); struct FetchMyKey : proto::when< _, proto::_env_var<mykey_type> > {}; int main() { proto::terminal<int>::type i = {42}; char const * sz = FetchMyKey()(i, 0, (mykey = "hello!")); assert(0 == std::strcmp(sz, "hello!"); }