https://zh.cppreference.com/w/cpp/language/operator_alternative
当分析器遇到字符序列 <::,且后继字符既非 : 亦非 > 时,< 被当做预处理记号本身,而非代用记号 <:。
但是我写的这样一段代码报错了:
(res.v[i][j]+=v[i][k]*b.v[k][j]%::m)%=::m
事实上,只要将其改为
(res.v[i][j]+=v[i][k]*b.v[k][j]% ::m)%=::m
就不会报错。
那我是不是可以理解为,c++ 标准只处理了 <: 这个代用记号的冲突问题,却根本没想过要把它推广到其它类似的代用记号上?