c++ - 是否可以实现一个交换尾随括号表达式的宏?
问题描述
使用 c/c++ 预处理器可能会出现以下情况吗?
#define SWAP(...) ???
SWAP(1,2,3)(4,5)
// will expand to
{ 4,5 , 1,2,3 }
Boost.Preprocessor 和/或可变参数宏的任何使用都是合法的。
如果这是不可能的,为什么不呢?
请注意:尾括号是这个问题的重要组成部分。显然,可以使替代方案SWAP( (1,2,3) (4,5) )
(例如https://godbolt.org/z/97EqxK)
PS:非交换版本看起来像这样https://godbolt.org/z/u9kby3
解决方案
推荐阅读
- django - 芹菜:得到意外的 run_command() 需要 1 个位置参数,但给出了 318 个错误
- django - 复制excel pdf的按钮不显示在视图中?
- css - Zend 3 样式表不包含在 IE 中
- oracle - Oracle Universal Installer 卡在第 7 步(共 10 步)
- azure - Is there a way to generate a single MSI token for a list of Azure resources?
- reactjs - 迁移到 Material-UI v4 后未捕获的错误
- c# - Ninject 和 Microsoft.Extensions.Logging
- reactjs - 如何在 React 中获取 ChildNode 的宽度?
- php - 在mysql中用html表单连接表
- google-cloud-platform - Google Cloud Vision API 在线与离线定价