value category
C++ 中的任意表达式都有一个类型(type), 以及值类型(value category). 值类型是理解编译器在表达式计算过程中针对临时变量的创建, 复制和移动所必须遵循的规则的基础. glvalue: 一个表达式能够指定一个函数或对象 prvalue: 一个表达式的计算能够初始化对象或位域, 或是一个内置操作符的计算结果 xvalue: 是一个能够指定一个对象的资源被复...
C++ 中的任意表达式都有一个类型(type), 以及值类型(value category). 值类型是理解编译器在表达式计算过程中针对临时变量的创建, 复制和移动所必须遵循的规则的基础. glvalue: 一个表达式能够指定一个函数或对象 prvalue: 一个表达式的计算能够初始化对象或位域, 或是一个内置操作符的计算结果 xvalue: 是一个能够指定一个对象的资源被复...
这玩意儿也太大了, 根本就不可能概括. 首先要记住以下概念: child instance: 指的是当前 cell/instance 的下一个 hierarchy level 的 instance 注意: child instance 与 parent instance 是一对概念, 就是把 hierarchy tree 的结点换成 instance. ...
地狱般的代码, 所以请抱着批判的态度看下去. 如果你了解并查集的基本概念的话, 对于了解 hier_clusters 的部分算法有很大帮助. hier_clusters 很难通过几句话能够说出它的作用, 这里只试图探讨构造该数据结构的过程. 根据代码片段, 我们将其分为两部分. build local cluster 可以简单概括为, 通过并查集构造相连 Cell 的 ...
可以算得上是 Morden Cpp 的基石, 实际应该在了解通用引用之后再熟悉类型推导的, 但我照着 Effective Mordern Cpp 学的, 所以就这样吧 Template Type Deduction 示例代码如下, 我们将分析 ParamType 与 T 在不同实参传递情况下的类型推导结果 // define template<typename T> voi...
// ------------------------------------------------------------------------------------- // Some utility class: a compare function for a instance set of two cells in the context // of two layouts...
简介 位域的声明可以指定类或结构体中的数据成员存储位数, 通常用于节省不必要的空间开销. 相邻的成员可能被打包共享一个字节, 也可能被分开横跨多个字节. 真是晦涩难懂的定义呢 用法如下: 在所有对非静态成员变量的声明后加 : <constexpr unsigned int> struct S { unsigned int a : 3; // 占 3 bits...
对于重载这个概念有点混淆, 进一步混淆了如标题所涉及的含义. 简介 应当先明确理解以下概念 override: 重写, 只适用于继承关系下, 派生类对基类虚函数重写 overload: 重载, 在相同作用域内, 拥有两个或以上的同名函数, 这些同名函数互相重载 override 针对于编程中经常容易发生的覆盖虚函数的情况, 如下: struct Base { ...
A cell multiplicity generator. This class delivers the multiplicity for a cell (number of “as if flat” instances of the cell in all top cells). It is instantiated with a reference to a cell grap...
TL;DR: clip_layout 根据给定的切割网格, 将原始 layout 给切割成目标 layout 为了缩减非重点代码, 以及简化写法, 文中涉及代码可能通过C++11以上的特性或直接进行简写, 与源代码不一致. 总之就是因为个人喜好, 有关 Klayout 的源码会有所变动. 简介 主要流程非常明确: flowchart LR A[collect c...
TL;DR: CellMapping 在构造一个等价关系表, 从而在对 Layout 进行拷贝或对比时能够避免不必要的新 Cell 的生成, 从而直接将 src_layout 中的 Cell 直接拷贝/比较 dst_layout 中的 Cell. 为了缩减非重点代码, 以及简化写法, 文中涉及代码可能通过C++11以上的特性或直接进行简写, 与源代码不一致. 总之就是因为个人喜...