相关疑难解决方法(0)

在C++模板中使用尖括号引入的所有语法问题是什么?

在C++模板中使用尖括号进行实例化,vector<int>Java和C#语言对其泛型使用相同的语法.

然而,D的创造者对尖括号带来的问题非常直言不讳,并且他们提出了一种新的语法foo!(int)- 但我从未见过关于尖括号带来的问题的太多细节.

其中一个是用另一个模板实例化模板时vector<vector<int>>,这会导致一些(较旧的?)编译器将尾随的">>"与位移或流操作符混淆.解决方案是在两个尖括号之间插入一个空格,但现在还没有编译器能够解析这种语法吗?

另一个问题是使用大于运算符时foo<3 > 2>.解析器会认为运算符实际上关闭了模板实例化; 修复是介绍括号foo<(3 > 2)>.但我不认为有很多情况你需要这样做,无论如何,我宁愿在需要时输入额外的括号,而不是引入新的语法并且总是要输入感叹号.

使用尖括号还有哪些其他问题使D开发人员创建了新语法?

c++ syntax templates d

29
推荐指数
4
解决办法
6236
查看次数

标签 统计

c++ ×1

d ×1

syntax ×1

templates ×1