文档章节

对 volatile 的对象取值和赋值 (几何画板开发笔记 二)

刘军兴
 刘军兴
发布于 2014/05/03 16:22
字数 253
阅读 223
收藏 1
C++

问题提出:
   在研究和借鉴 emacs lisp 实现程序时, 有部分值被定义为 volatile 的, 则对其取值和赋值都有些不同,
在 C++ 中.

例子:
   struct Lisp_Object { int i; };   // 这是 lisp 基本对象结构定义.

   volatile Lisp_Object var, var2;   // 某些地方必须使用 volatile 的变量.
   Lisp_Object arg;       // 大部分是普通变量.
   // 以下取值/赋值产生编译器错误.
   arg = var;   // 编译器错误 C2678: 二进制“=”: 没有找到接受“volatile Lisp_Object”类型的左操作数的运算符(或没有可接受的转换)
   var = arg;   // C2679: 没有找到接受“volatile Lisp_Object”类型的右操作数的运算符(或没有可接受的转换)
   var = var2;   // C2678: 这样也错..., 实在很麻烦...

 

解决的方法:

    arg = const_cast<const Lisp_Object &>(var);
    const_cast<Lisp_Object &>(var) = arg;
    const_cast<Lisp_Object &>(var) = const_cast<const Lisp_Object &)(var2); 

最后的那个写起来很麻烦, 真用起来一般用宏包装起来...

 

参见:
http://stackoverflow.com/questions/4644296/cant-assign-an-object-to-a-volatile-object/23441800#23441800

 

© 著作权归作者所有

刘军兴
粉丝 59
博文 189
码字总数 237645
作品 0
昌平
私信 提问
万万没想到,课件还可以这样制作!

不知道作为数学老师的你,是否有这样的烦恼:要上课之前要提前备课,不知道如何才能完美展示你的备课笔记?公开课来了,应该怎么制作课件,为你加分呢?学生成绩上不去,是否跟你的教学模式有...

学术研究软件
2016/04/25
15
0
几何画板中怎么更改背景颜色

在使用几何画板的过程的,大家发现背景颜色默认为白色,但是有时为了让我们做的图形的效果更加美观或更方便对比,就需要更改背景颜色。但是一些用户对于这种操作还不是很了解,因此,我们特地...

学术研究软件
2016/07/12
44
0
双十二“几何画板”限时6折特惠

还记得前不久的“双十一”么?各种商家为了回馈用户,都推出了空前的优惠活动,为了方便大家买买买,更是放大招,不惜打折降价来回馈新老客户。说实话买东西就要看准这种搞优惠活动的时候,不...

学术研究软件
2016/12/08
15
0
几何画板中去除画出的线段的方法

在几何画板中作图和在黑板和纸上画图不一样,没有直接可以使用的橡皮擦或者黑板擦来将画的图擦除,但是在几何画板中如果画错了图或者不需要某个图形,也是可以不让它显示出来的,这样就不会妨...

学术研究软件
2016/12/19
12
0
对几何画板对象删除和拖动的方法

几何画板如果做一些复杂的图形还是有点难度的,但是如果对几何画板做一些基本的操作,那是很简单的。在几何画板中,对选中的对象可以进行的操作有:删除、拖动、构造、度量、变换等。本节教程...

学术研究软件
2016/07/08
16
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
687
10
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
39
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
25
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
74
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
72
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部