boost之put_get_helper

news2024/10/22 17:47:45

简介

put_get_helper是property_map的辅助类,自定义的property_map必须实现put_get_helper,也是property_map的基类,子类必须实现operator[]

结构

put_get_helper<Reference, LvaluePropertyMap>
iterator_property_map<RandomAccessIterator, IndexMap, T, R>
safe_iterator_property_map<RandomAccessIterator, IndexMap, T, R>
associative_property_map<UniquePairAssociativeContainer>
const_associative_property_map<UniquePairAssociativeContainer>
static_property_map<ValueType, KeyType>
ref_property_map<KeyType, ValueType>
typed_identity_property_map<T>
dummy_property_map

put_get_helper是标记类,没有任何方法,针对put_get_helper有put,get函数模板,要求put_get_helper的子类实现operator[]

template<class PropertyMap, class Reference, class K>
inline Reference get(const put_get_helper<Reference, PropertyMap>& pa, const K&k)
{
	Reference v = static_cast<const PropertyMap&>(pa)[k];
	return v
}

template<class PropertyMap, class Reference, class K, Class V>
inline void put(const put_get_helper<Reference, PropertyMap>& pa, K k, const V& v)
{
	static_cast<const PropertyMap&>(pa)[k] = v;
}

属性traits

特性包含4点

  • key_type
  • value_type
  • reference
  • category
    key_typevalue_type:表示map中的key,value数据类型
    reference:表示值的引用类型
    category:表示map的属性,是否可读可写
    相关类定义为
property_traits<PA>
default_property_traits
null_property_traits

category

category主要由tag来表示,其支持的值用枚举ePropertyMapID表示

enum ePropertyMapID { READABLE_PA, WRITABLE_PA, 
                          READ_WRITE_PA, LVALUE_PA, OP_BRACKET_PA, 
                          RAND_ACCESS_ITER_PA, LAST_PA };

tag对应的结构体类型关系为

readable_property_map_tag
read_write_property_map_tag
writable_property_map_tag
lvalue_property_map_tag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2220953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三个必须了解的知乎知+广告账户知识!

作为国内领先的问答社区&#xff0c;知乎以其高质量的内容和深度讨论吸引了大量专业和兴趣导向的用户群体。对于希望精准触达目标用户的广告主来说&#xff0c;知乎的信息流广告无疑是一个不可多得的营销渠道&#xff0c;云衔科技助力企业知乎广告开户投放及代运营服务。 1. 知…

【rom分享】PSP体育游戏大众高尔夫玩法介绍,不要错过

各位新老观众大家好&#xff0c;今天我将介绍知名掌机PSP的所有游戏&#xff0c;PSP的游戏库非常庞大&#xff0c;随着PSP模拟器的普及&#xff0c;你可以在安卓和苹果两大平台的移动设备上游玩&#xff0c;也可以在PC上面游玩&#xff0c;当然你也可以收藏一个PSP掌机进行游玩…

python3的语法及入门(近7000字,耐心看包全,看完记得点赞)!

1. Python3 基础语法 缩进&#xff1a;Python 使用缩进来表示代码块&#xff0c;通常使用 4 个空格。 语句&#xff1a;一行代码就是一个语句。 变量&#xff1a;不需要声明类型&#xff0c;直接赋值即可。 2. Python3 基本数据类型 Python 中的基本数据类型包括整数、浮点…

Shell学习——shell中的变量

目录 一、父shell和子shell&#xff1a; 二、系统预定变量 定义方式&#xff1a; 脚本举例 ​编辑 四、只读变量 五、撤销变量 六、小结 七、特殊变量 $n $# $*、$ $? 一、父shell和子shell&#xff1a; 由于shell的原理可以理解为套娃&#xff0c;因此有父shell…

【实战案例】Django框架连接并操作数据库MySQL相关API

本文相关操作基于上次操作基本请求及响应基础之上【实战案例】Django框架基础之上编写第一个Django应用之基本请求和响应 Django框架中默认会连接SQLite数据库&#xff0c;好处是方便无需远程连接&#xff0c;打包项目挪到其他环境安装一下依赖一会就跑起来&#xff0c;但是缺点…

你知道吗?这个岗位只招2人,但HR那边却收到了1w份简历

引言 在当前经济环境下&#xff0c;求职者面临的挑战越来越大。互联网行业尤其如此&#xff0c;许多人挤破头都想进入大厂&#xff0c;但竞争异常激烈。如今的就业市场确实变得异常艰难。然而&#xff0c;随着AI大模型技术的兴起&#xff0c;对于那些掌握了相关技能的专业人才…

学习笔记——交换——STP(生成树)基本概念

三、基本概念 1、桥ID/网桥ID (Bridege ID&#xff0c;BID) 每一台运行STP的交换机都拥有一个唯一的桥ID(BID)&#xff0c;BID(Bridge ID/桥ID)。在STP里我们使用不同的桥ID标识不同的交换机。 (2)BID(桥ID)组成 BID(桥ID)组成(8个字节)&#xff1a;由16位(2字节)的桥优先级…

Java基于SSM微信小程序物流仓库管理系统设计与实现(lw+数据库+讲解等)

选题背景 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…

wordcloud分词生成

代码如下 _ from wordcloud import WordCloud import PIL.Image as image import numpy as np import jiebadef cut(text):word_list jieba.cut(text,cut_all True)# 分词后在单独个体之间加上空格result " ".join(word_list)return result#导入文本文件,进行分词…

免费ppt模板从哪找?全面又实用的PPT模板就在这找

就是说有多少刚上大学的朋友&#xff0c;为了交一份完美的PPT报告&#xff0c;手写列大纲、找报告文献/插图素材......最后手动整理排版&#xff0c;老老实实地熬了几个大夜&#xff1f; 24年都快结束啦&#xff0c;大家还没学会去免费的ppt模板网站下载精美的主题PPT一键替换吗…

政安晨【零基础玩转各类开源AI项目】基于本地Ubuntu (Linux ) 系统应用Gradio-Lite:无服务器 Gradio 完全在浏览器中运行

目录 简介 什么是@gradio/lite? 入门 1.导入 JS 和 CSS 2. 创建标签 3. 在标签内编写你的 Gradio 应用程序 更多示例:添加其他文件和要求 多个文件 其他要求 SharedWorker 模式 代码和演示playground 1.无服务器部署 2.低延迟 3. 隐私和安全 限制 尝试一下!…

VScode远程开发之remote 远程开发(二)

VScode远程开发之remote 远程开发&#xff08;二&#xff09; 使用vscode进行远程开发很简单&#xff0c;在拓展里搜索 Remote Development&#xff0c;就可以搜索到微软提供的远程开发大礼包&#xff0c;里面包含了 通过 SSH 远程服务器 远程容器 远程 WSL&#xff08;Win…

亚马逊测评自养号技术及采购下单成功率揭秘

在亚马逊测评中&#xff0c;自养号面临砍单、买家号关联等问题时&#xff0c;需要采取一系列策略和技术手段来提高采购下单的成功率。以下是一些具体的解决方案&#xff1a; 一、解决砍单问题 1.确保硬件参数独立 每个账号应使用具有独特硬件标识的设备&#xff0c;如IMEI、…

【大模型实战篇】大模型分词算法WordPiece分词及代码示例

继《大模型数据词元化处理BPE(Byte-Pair Encoding tokenization)》之后&#xff0c;我们针对大模型原始数据的分词处理&#xff0c;继续分享WordPiece分词技术【1】。 1. 原理分析 WordPiece 是 Google 开发的分词算法&#xff0c;用于预训练 BERT。此后&#xff0c;它被多个基…

uni-app中添加自定义相机(微信小程序+app)

一、微信小程序中 微信小程序中可以直接使用camera标签&#xff0c;这个标签不兼容app&#xff0c;官方文档 <cameradevice-position"back"flash"off":style"{ height: lheight px, width: lwidth px }"class"w-full"></c…

vue3【实战】 渲染 md 文件(markdown语法 .md后缀的文件)

1. 安装相关插件 npm i unplugin-vue-markdown markdown-it-prism prism unhead/vue2. 添加配置 src/main.ts // 给 md 文件创建头部 import { createHead } from unhead/vue // md 文件中代码高亮的样式 import prismjs/themes/prism.css // 自定义 md 文件的样式 import /as…

【JAVA面试题】什么是Springboot的自动配置以及注意事项

文章目录 强烈推荐核心概念&#xff1a;自动配置的关键特点&#xff1a;示例&#xff1a; 需要注意的点1.默认配置可能不适合所有场景2.Bean 冲突与覆盖3.应用启动慢的问题4.过度依赖自动配置5.安全性问题6.依赖冲突与版本兼容7.过多不必要的自动配置8.调试困难 专栏集锦 强烈推…

.net framework 3.5sp1安装错误卡住不动怎么解决

解决 .NET Framework 3.5 SP1 安装错误卡住的问题&#xff0c;可以尝试以下几种方法&#xff1a; 1.使用 DISM 工具&#xff1a; 将下载的 NetFx3.cab 文件放置在 C:\Windows 文件夹下。 以管理员身份打开命令提示符&#xff0c;输入以下命令&#xff1a; dism /online /En…

【web前端设计】jquery图标动画特效

学习目标 学习web前端设计技术&#xff08;HTML、css、JavaScript、jQuery等&#xff09;&#xff0c;综合运用技术&#xff0c;将其与HTML元素结合&#xff0c;设计样式、监听事件、添加动画等&#xff0c;给用户呈现出更好的视觉交互效果。本文主要学习分页按钮自动放大、元…

HCIP-HarmonyOS Application Developer 习题(十二)

&#xff08;多选&#xff09;1、声明式开发范式的转场动画包含以下哪几种类型? A、页面间转场 B、应用间转场 C、共享元素转场 D、组件内转场 答案&#xff1a;ACD 分析&#xff1a; &#xff08;多选&#xff09;2、公共事件服务为应用程序提供哪些能力。 A、取消发布公共…