【发布时间】:2014-07-31 12:56:11
【问题描述】:
请注意,标题中的* 是一个占位符,在我的例子中,罪魁祸首是??[。
我刚刚遇到了由双问号组成的 C++(也称为“C”)转义序列。这曾经是用来做什么的,为什么它仍然存在?
我有ascii-85 编码文本,其中很少出现双问号,我只是花了一个下午从我的头上扯下头发,同时试图在编码器/解码器中找到错误,而这只是编译器对我的恶作剧。
【问题讨论】:
-
Trigraphs 现在非常没用,并且不会出现在 C++17 中。见提案:Removing Trigraphs??!
-
@chris 这确实是一个有趣且令人兴奋的发展!
-
当然,C++ 是从 C 中获得它们的,它们仍然是(据我所知)标准。
-
@JamesKanze 你说得对,我很困惑,因为en.wikipedia.org/wiki/Escape_Sequences_in_C 没有明确提到
??,而en.cppreference.com/w/cpp/language/escape 有。 -
@JamesKanze:在您的评论中重新定义“仍然”,三元组在 C++ 中仍然是标准的。 AFAIK 它们也不会在 C++14 中被删除。