C/C++ 用 ascii 艺术声明 2D/3D 数组

C/C++ declare 2D/3D array with ascii art

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

像这样:

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

甚至可以为 3d 数组绘制长方体。

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

我似乎无法想出正确的词来 google 这让我很困扰 :)

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

听起来很像 Eelis 的 Multi-Dimensional Analog Literals (also linked here)。简短示例:

#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);
}