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);
}
很久以前(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);
}