- 博客(11)
- 资源 (7)
- 收藏
- 关注

原创 C++ 值类型之左值
总之,能取址的一定是左值,除位域和寄存器变量(即register变量,但最新的编译器,如gcc,遇到代码中对register变量使用&取址时,会自动转换成普通变量,即register关键字被忽略了)以外,左值皆可取址,即能使用&取址运算符。以下列表所有左值:1. 变量,函数名,成员变量名,无论其类型,即使变量类型是右值引用,其名字构成的表达式仍是左值表达式。注意:将函...
2019-07-19 18:35:57
1061
原创 c++11误区之std::forward和std::move
std::move并不进行任何移动,std::forward也不进行任何转发,它们都是仅仅执行强制转换的函数模板std::move是无条件将实参转换成右值,为何叫move,是告诉编译器,这个是一个右值,右值是可以移动的(如std::vector移动构造函数参数就是一个右值引用)(关于右值,详见:https://blog.youkuaiyun.com/ant2012/article/details/9782...
2019-08-03 23:55:22
861
原创 c++ 值类型之右值
总之,在c++表达式不是左值,就是右值。右值的特性:1 右值不能取址,如&i++是无法编译的2 右值不能赋值,即不能作为内建的赋值运算符和复合赋值运算符的左操作数。注意:此处强调的是内建,因为c++支持运算符重载,重载过的赋值运算符和复合赋值运算符,右值仍然可以作为左操作数3. 右值可以初始化const左值引用(左值介绍参见https://blog.youkuaiyun.com/ant...
2019-08-03 23:45:12
1669
原创 java Byte, Boolean, Integer, Short 比较运算符 == 误区
java对象的比较运算符"=="是对象地址比较,但基本数据类型,如Byte, Boolean, Integer等基本类型的封装类在使用==时,有些细节需要注意,如以下代码:public static void main(String []args) { Integer i1 = 1; Integer i2 = 1; Integer i3 = new Integer(1); S...
2019-07-25 11:46:24
704
原创 c++ notify_one()和notify_all() 误区
notify_one()(随机唤醒一个等待的线程)和notify_all()(唤醒所有等待的线程),在c++里的实现原理和java不太一致,java必须在锁内(与wait线程一样的锁)调用notify。但c++是不需要上锁调用的,如果在锁里调用,可能会导致被立刻唤醒的线程继续阻塞(因为锁被notify线程持有),但c++标准上也说,一些实现(尤其是许多 pthread 的实现)为了归避这种情况,在...
2019-07-19 20:15:57
21349
2
原创 xcode linker command failed with exit code 1 (use -v to see invocation)
linker错误一般是库不对,没有接口的实现,或者实现的函数定义和声明不一样导致的可以右击错误,弹出的菜单栏,点击 Reveal in Log,就会显示错误详情,然后定位到哪个接口的实现找不到加入我们:http://www.duoceshi.com/team.html...
2019-02-26 17:55:12
434
原创 深入理解java线程池ThreadPoolExecutor
我们在工程项目中,有时候既想拥有不错的并发体验,又想不要在应用中创建太多的线程(线程的创建还是有一定的开销的),这时就得用到jdk中的ThreadPoolExecutor类,相信java程序员对这个很面熟,但对于初学者来说,这里还是有一些细节需要注意一下。首先们来看下ThreadPoolExecutor的构造函数,一共有4个重载的构造函数:public ThreadPoolExecuto...
2018-12-10 00:33:47
195
原创 xcode10 libstdc++ not found
xcode 升级到10以后,旧的工程可能会出现兼容问题。如果升级后发现原先可编译的工程无法编译,可进行如下操作:1. 在xcode10中,File > Workspace Settings > Shared Workspace Settings > Build System 选择 Legacy Build System。2.如果在编译的时候出现 library not f...
2018-12-09 03:48:18
360
原创 gradle build error.
问题描述:null value in entry: otherfileoutputs=null解决方案:删除工程下.gradle目录,重新build
2018-11-13 18:07:39
340
原创 python 在windows命令行下显示当前目录所有文件的大小
python代码:#!/usr/bin/python#-*- coding:utf-8 -*-import osimport sysimport datetimeimport redef isAscii(ch) : return ch <= u'\u007f'def formatByWidth(text, width, align_left=True) : pad = " " * (widt...
2018-06-08 01:23:24
5366
原创 python 非ASCII字符对齐
由于中文字符和ASCII字符的宽度问题,简单的用print格式化是无法对齐中英文字符串,可以通过主动字符填充的方式实现运行环境:win10 + python 3.6import osimport sysdef isChinese(ch) : return u'\u4e00' <= ch <= u'\u9fff'def formatByWidth(text, width) : count...
2018-06-03 02:23:08
584
libstdc++库
2018-12-09
window下显示目录所有文件的大小
2018-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人