因为一些众所周知的原因,我们不希望使用中文版的谷歌,但是往往又希望中文界面.以下面的链接作为查询网址即可
https://www.google.com/ncr#hl=zh-CN&q=%s
… Read More 因为一些众所周知的原因,我们不希望使用中文版的谷歌,但是往往又希望中文界面.以下面的链接作为查询网址即可
https://www.google.com/ncr#hl=zh-CN&q=%s
… Read More 背景: 开发中希望能从宿主直接访问虚拟机的文件,例如用office打开word,用 source insight 阅读代码等。
虚拟机为16.04 ,宿主为Windows 10 1803,samba试了很多次,就是不行。
ftp方案:
anonymous_enable=YES
anon_root= abs_path_to_dir
… Read More new delete
是C++中的两个主要的表达式.
new
相当于C的malloc() + T()
,delete
相当于C
的free() + ~T()
.operator
尽管在大部分场合中,数组类型和函数类型都被转换成某种指针使用,然而它们确实是某种类型.
这一点在类型推导中很重要,因为类型推导可以推导出数组类型/函数类型
std::array
,由T
和N
两个属性决定唯一的数组类型,称T[N]
型对象为数组类型,其中N必须为constexpr
,称T array[N]
为T[N]
的一个实例.
T
xxx_cast<TYPE &>(var)
整体可以作为左值,其他情况转换得到的都是右值临时对象。const_cast
const_cast
是只用于处理const
相关的类型转换,主要是移除const
(加const完全可以用隐式转换), const_cast
只有向引用/指针的转换有实际意义.const T c_obj;
const
… Read More Const Expression, constexpr 是一个非常复杂的话题, 幸运的是, 我们在实践中
需要记住的内容并不太多,因为常见的应用场景其实比较简单.
const
限定符const
是一种编译期特性,用于限定对象的编译期写入权限, 编译器也可能将const对象视作constexpr进行优化.
trick
在运行期写入对象,但是不要这么做.arg_i
,其类型decltype(arg_i)
及其所有基类所在的作用域都加入实参类型搜索域想要彻底理解这一部分的内容,你应该对OS/进程/虚拟内存/编译/链接过程有一定的了解,仅从语言层次学习是比较抽象的.
extern
,且不含任何初始化部分,则该语句就是一个纯粹的声明,例如
extern T &val;//纯声明
extern T val;//纯声明
extern
这一部分主要介绍左值,右值,引用,拷贝和移动.这些可以说是C++11显著区别于以前的C++(还有C)的特性.本文主要从易用的角度介绍值类型(值类型实际要更多一些).
vector<int> a;
,其中的所有元素都被auto b = std::move(a);
移出后,不能假定a.size()
值为0了.一个典型的工具链是:链接器-编译器(汇编器一般不接触)-预处理器-文本编辑器-构建系统
构建系统,或者称为工程管理器,对于开发意义重大,是工具链中重要的一环,其意义在于组织文件,管理源代码,明确目标输出,组织编译/链接的顺序和关系.
nmake
,QT的qmake
,跨平台的CMAKE(使用makelist.txt
),unix平台的make(使用makefile
).其中CMAKE是目前事实上的标准构建系统,bazel也随着google项目的扩张越来越流行使用#ifndef
或者#pragma once