使用模板在代码中可视化 2D 和 3D 形状
Visualize 2D and 3D shapes in code using templates
我记得有一个库(我想是一个 header)基于模板和运算符重载,允许在代码中可视化 2D 和 3D 形状,表达式如下:
assert( (I-----o
| |
o-----I).area() == (I---o
| |
| |
o---I).area() );
还有更复杂的 3D 形状。
我有一个 link 到这个图书馆,但找不到 link...(我可能已经为它添加了书签,但找不到书签)。
Google 也没有太大帮助,至少对我的搜索关键字没有帮助。
有人知道我在说什么吗?
感谢 Story Teller,link 是:
http://www.eelis.net/C++/analogliterals.xhtml
这里有一个叉子:
https://github.com/Quuxplusone/analog-literals
一些实际代码示例:
unsigned int c = ( o-----o
| !
! !
! !
o-----o ).area;
assert( c == (I-----I) * (I-------I) );
assert( ( o-----o
| !
! !
! !
! !
o-----o ).area == ( o---------o
| !
! !
o---------o ).area );
以及 3D 形状:
assert( top( o-------o
|L \
| L \
| o-------o
| ! !
! ! !
o | !
L | !
L| !
o-------o ) == ( o-------o
| !
! !
o-------o ) );
assert( ( o-------------o
|L \
| L \
| L \
| o-------------o
| ! !
! ! !
o | !
L | !
L | !
L| !
o-------------o ).volume == ( o-------------o
| !
! !
! !
o-------------o ).area
* int(I-------------I) );
它在其他 SO 帖子中提到,添加到问题的评论中。
我记得有一个库(我想是一个 header)基于模板和运算符重载,允许在代码中可视化 2D 和 3D 形状,表达式如下:
assert( (I-----o
| |
o-----I).area() == (I---o
| |
| |
o---I).area() );
还有更复杂的 3D 形状。
我有一个 link 到这个图书馆,但找不到 link...(我可能已经为它添加了书签,但找不到书签)。 Google 也没有太大帮助,至少对我的搜索关键字没有帮助。
有人知道我在说什么吗?
感谢 Story Teller,link 是: http://www.eelis.net/C++/analogliterals.xhtml
这里有一个叉子: https://github.com/Quuxplusone/analog-literals
一些实际代码示例:
unsigned int c = ( o-----o
| !
! !
! !
o-----o ).area;
assert( c == (I-----I) * (I-------I) );
assert( ( o-----o
| !
! !
! !
! !
o-----o ).area == ( o---------o
| !
! !
o---------o ).area );
以及 3D 形状:
assert( top( o-------o
|L \
| L \
| o-------o
| ! !
! ! !
o | !
L | !
L| !
o-------o ) == ( o-------o
| !
! !
o-------o ) );
assert( ( o-------------o
|L \
| L \
| L \
| o-------------o
| ! !
! ! !
o | !
L | !
L | !
L| !
o-------------o ).volume == ( o-------------o
| !
! !
! !
o-------------o ).area
* int(I-------------I) );
它在其他 SO 帖子中提到,添加到问题的评论中。