相关疑难解决方法(0)

C++模板角度支架陷阱 - 什么是C++ 11修复?

在C++ 11中,这是现在有效的语法:

vector<vector<float>> MyMatrix;
Run Code Online (Sandbox Code Playgroud)

而以前,它必须这样写(注意空格):

vector<vector<float> > MyMatrix;
Run Code Online (Sandbox Code Playgroud)

我的问题是标准用于允许第一个版本的修复是什么?

它可以像制作>令牌一样简单而不是>>吗?如果不是这样,那么这种方法有什么用呢?

我认为这些表格myTemplate< x>>3 >不是问题,因为你可以通过这样做来消除它们的歧义myTemplate<(x>>3)>.

c++ parsing templates tokenize

12
推荐指数
1
解决办法
6668
查看次数

是否使用特殊规则标记了类型参数中的">>"?

我对Java规范应该如何标记这个代码感到困惑:

ArrayList<ArrayList<Integer>> i;
Run Code Online (Sandbox Code Playgroud)

规范说:

每个步骤都使用尽可能长的翻译,即使结果最终没有形成正确的程序而另一个词汇翻译也会如此.

据我了解,应用"最长匹配"规则会产生令牌:

  • 数组列表
  • <
  • 数组列表
  • <
  • 整数
  • >>
  • 一世
  • ;

哪个不会解析.但当然这个代码解析得很好.

这种情况的正确规范是什么?

这是否意味着正确的词法分析器必须无上下文?使用常规词法分析器似乎不可能.

java parsing token

12
推荐指数
1
解决办法
213
查看次数

标签 统计

parsing ×2

c++ ×1

java ×1

templates ×1

token ×1

tokenize ×1