Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

上个月关闭。



Improve this question




我记得一个基于模板和运算符重载的库(我认为是单个 header ),该库允许可视化代码中的2D和3D形状,并具有以下表达式:
assert( (I-----o
         |     |
         o-----I).area() == (I---o
                             |   |
                             |   |
                             o---I).area() );
还有3D形状的更复杂的内容。
我有一个到此库的链接,但找不到该链接...(我可能已将其添加为书签,但找不到该书签)。
Google也没有太大帮助,至少在我的搜索关键字方面也没有。
有人知道我在说什么吗?

最佳答案

感谢Story Teller,该链接为:
http://www.eelis.net/C++/analogliterals.xhtml
在这里用 fork :
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帖子中也提到了该问题,并在问题中添加了注释。

关于c++ - 使用模板可视化代码中的2D和3D形状,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64336612/

10-08 22:04