从C++17开始,移除trigraph。
简单考古一下,就是从前的键盘不支持ascii码,不能输入C语言的编程需要的{,},\ , ~ 。。。需要用三个可输入的字符组合表示:例如, ??= 等价于 #
参考:https://en.wikipedia.org/wiki/Digraphs_and_trigraphs#C
参考:https://zhuanlan.zhihu.com/p/25434012
参考:https://stackoverflow.com/questions/1234582/purpose-of-trigraph-sequences-in-c
digraph仍旧有用。例如:
#include <iostream> int main() <% char a<:10:>; a<:0:>='a'; std::cout << a<:0:> ; %>
等价于:
#include <iostream> int main() { char a[10]; a[0]='a'; std::cout << a[0] ; }
参考:http://zh.cppreference.com/w/cpp/language/operator_alternative