问题描述
我还记得一个基于模板和运算符重载的库(我认为是单个标头),该库允许可视化代码中的2D和3D形状,例如:
assert( (I-----o
| |
o-----I).area() == (I---o
| |
| |
o---I).area() );
还有3D形状的更复杂的东西。
我有一个到此库的链接,但找不到链接...(我可能已将其添加为书签,但找不到书签)。 Google也没有太大帮助,至少在我的搜索关键字方面也没有。
有人知道我在说什么吗?
解决方法
感谢Story Teller,该链接为: 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帖子中也有提及,并在问题中添加了注释。