<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/136174>136174</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
cassert in comparable with c++23 multiple dimensional subscript operator
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
cianciosa
</td>
</tr>
</table>
<pre>
The following C++23 code fails to compile
```
#include <cassert>
struct foo {
int operator[](int i, int j) {return 0;}
};
int main(int argc, const char * argv[]) {
foo f;
assert(f[0, 0] && "");
}
```
With the error
```
<source>:9:17: error: too many arguments provided to function-like macro invocation
9 | assert(f[0, 0] && "");
| ^
/usr/include/assert.h:92:11: note: macro 'assert' defined here
92 | # define assert(expr) \
| ^
<source>:9:5: error: use of undeclared identifier 'assert'; did you mean '__assert'?
9 | assert(f[0, 0] && "");
| ^~~~~~
| __assert
/usr/include/assert.h:81:13: note: '__assert' declared here
81 | extern void __assert (const char *__assertion, const char *__file, int __line)
| ^
<source>:9:5: warning: expression result unused [-Wunused-value]
9 | assert(f[0, 0] && "");
| ^~~~~~
```
It appears the preprocessor does't understand the new C++ index syntax. This was
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVU1v4zYQ_TX0ZRBDIvVhH3SwnTXQ-wJ7NGhyZHFLkQI_nOTS316MLCdxWqDdogQBCRzOvDfzOKSM0VwcYsfqPaufVzKnwYdOGemU8VGuzl6_dd8HhN5b61-Mu8CB8T3jey5AeY3QS2MjJA_Kj5OxCKzY0WyKZRY7xoVxymaNwMRByRgxJCa-3XbGFLJK0HsPrN2zYgcAYFwCP2GQyYcbN8Y3tGgYP8zWn4xvySFgysFBwcSetc8Usn2m_zk2bRylcYuzDBdF_sq7mEANMgDjO1q-3kG2n0gQpf4WCxbSfNOzel9QkILVz8B4w3gDjPN5bhfkG5HPJSh2P0waIA0IGIIPX-3iEH0OCqksYrdlYle2TOyWzWIHyXsYpXsjtnlElyJMwV-NRk3V77NTyXj3ZM3vCKNUwYNxV68krS4JUXKHX0sF5kFurJ4F48ccA-PHRVHGj7d464F4cyJeEl_nE9L3RoXx9g7bgsbeONQwYMAbxJbfILhYjB8k8XUKJMsvD1YfKDjF_bz47e-rXT8UO0cE30N2GpWVATUYjS6Z3mB4yIWJPWij4c1nGFE6Mp5On8zHh9LT-O_l_4PGwyKNd7h_EmdDupTisziPbOE92w9lNuUMhK8Jg4OrN_odEBjfPHbS3UIn7i9tdjr1xuK9fU8naxxSnl_z-XdSvcjgjLvMqr1OAWM03kHAmG2C7HJEDazeP_24_T9dpc1IHf4_ybEwvEvypdd_SyCnCWWIc8dPAafgFcboA2iPkfE2zacrxCSdnjc5fLnfrWCcxleIby7J1zV8H0yEFxlhpTuht2IrV9iVbVVtS1G21WroeNNoeeYbUfYKJaqqULVqqqLAc9liLVem4wWvi6psy03RlMW63pwrLHgjqgI3ja5ZVeAojV1bex3XPlxWJsaMXSkagrDyjDbOzwTnxHS2Umnq51XoyOnpnC-RVYU1McWPMMkki91y6YNx8zshgzxbhBe6EtX7ezJmm8xkEbQZ0ZGg0kLM56iCmT7eg1UOthtSmiITdOQZP15MGvJ5rfzI-JGgl8_TFPxPVIlagghHxo9LRteO_xkAAP__G9UFow">