首页 > 解决方案 > C/C++ 用 ascii 艺术声明 2D/3D 数组

问题描述

很久以前(10 多年)我看到了一种语法,它可以让你用“ascii art”声明数组。

像这样的东西:

//Declares 5x3 2d array
int myArray[] = #####
                #   #
                #####

甚至可以为 3d 阵列绘制长方体。

很长一段时间以来,我的主要语言是 C++,所以我确信它是 C/C++。我的记忆告诉我,我在一些“C++ 已弃用的功能”文章中读到了它,但我怀疑这是否是标准的。也许这是某种语言扩展。

似乎我无法想出正确的词来谷歌它,这让我很困扰:)

有谁知道这种语法是否曾经以某种形式存在过?

标签: c++cmultidimensional-arraysyntax

解决方案


听起来很像 Eelis 的多维模拟文字(也链接在这里)。简短的例子:

#include <cassert>

#include "analogliterals.hpp"
using namespace analog_literals::symbols;

int main()
{
    auto l = I---------I;

    auto r = o---------o
             |         !
             !         !
             o---------o;

    assert(l.length == 4);
    assert(r.width == 4 && r.height == 2);
}

推荐阅读