c - C预处理器:不可能创建通用空检测器宏的正式证明
问题描述
有一种观点认为不可能编写通用的空检测器宏:
/*
* Expands to token 1 if the argument list is empty.
* Expands to token 0 if the argument list is not empty (excluding comments).
*/
#define IS_EMPTY(...) /* ??? */
但是,确实存在一些“接近”的实现。
问题:
- 有人可以提供一个正式的证明或至少一个正确的论证来证明/说服不可能实现通用的空检测器宏吗?
- 由于确实存在一些“接近”实现,问题是:我们离“接近”实现变成“一般”实现的边界有多近?
注意:一种意见是我们非常接近。但究竟有多可怕?我们如何估计这个(数字或使用其他指标/指标)?
解决方案
推荐阅读
- c++ - 什么是等价于 C++ 向量
在 Java 中? - c# - 如何使用线程编辑列表
- python - Django - 'AnonymousUser' 对象不可迭代,因为我在上下文处理器中使用了用户过滤器
- python - 从数字 python3 中减法
- jquery - jQuery表单提交找不到数据
- swift - 如何在 SpriteKit 中重置物理体的对齐方式?
- arrays - 如何使用 axios 为 Google 地图和 React 中的 placeid 获取数据?
- node.js - 护照加载时间长且无消息失败的身份验证表
- python-3.x - 为什么网络对测试中的每个输入给出相同的结果?
- c++ - 如何通过 stdstring 打印 ostream 变量的值?