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!"); }