reference

未分类

Tablegen Language Tutorial

Tablegen Language Tutorial 很难想象,网络上竟然搜索不到可以称为"教程"的Tablegen资料. 唯一可靠的资料是官方的ProgRef, 作为一个Reference, 它是非常合格的, 详尽而精确, 但是如果把它作为教程来阅读, 则有一些缺点: 1. 过于详尽, 即便是一些不太重要的特性,也需要用完整精确的内容来描述. 2. 过于严谨, 即便是一些简单的特性,也需要用严格的方式来描述,比如 EBNF 风格的 syntax notation, 至少我的大脑是无法 zero cost 的 parse 这种notation的. 3. 内容排布不合理, 一些不重要的特性经常位于较为靠前的位置, 且总结性的内容较少. 为了避免这些问题, 本文将按 Quick Start 风格的 Tutorial 来组织,先熟悉最核心/最重要的概念, 再学习其他的功能. 通过这篇教程,你应该能够

By Edimetia3D

C++系列

[Cpp基础] [02] 拷贝/移动与引用

这一部分主要介绍左值,右值,引用,拷贝和移动.这些可以说是C++11显著区别于以前的C++(还有C)的特性.本文主要从易用的角度介绍值类型(值类型实际要更多一些). 拷贝与移动的基本定义 * "拷贝"和"移动"是从逻辑层面定义的,在最终的指令层面,只有"拷贝",没有"移动"操作. * 对于自定义类,拷贝与移动的实现有基本的准则(非硬性),这些准则是: * 拷贝:不应对源对象做任何修改. * 移动:可以对源对象做修改,但是源对象被修改后必须可以被赋值,且可以安全的析构. * 注意,对于移动操作.我们不能对移出后剩余的部分做任何假定,在没有重新赋值前,不应该使用移出后剩下的对象 * 例如:对一个vector<int> a;

By Edimetia3D