51
|
Andreas Bonini · 技术社区 · 15 年前 |
![]() |
1
88
您需要使用:
原因是宏需要两个参数。当您试图内联对定义时,您引入了第二个逗号,使宏变为三个参数。预处理器不尊重任何C++结构,它只知道文本。
所以当你说
1。
这是错误的。这是 mentioned 在for each文档中。 |
![]() |
2
20
我用 Boost's Range Ex library 它实现了一些奇特的范围适配器,用于遍历映射键或值。例如:
|
![]() |
3
3
当然可以。然而,技巧是,映射迭代器指向一对键和值。它看起来像这样:
|
![]() |
4
2
这是有可能的,但这并不是最好的方法(正如我之前提到过的,因为每个人几乎从来没有这样做过,提升前臂只是稍微好一点)。对于你的第一个例子,我认为你最好:
它与地图的工作原理非常相似,只是您必须为它定义运算符<<,因为还没有定义运算符:
…再一次,
|
![]() |
5
2
映射对的typedefing令人困惑。迭代映射的最简单方法是使用元组(就像在Python中一样):
别担心,这些逗号不会混淆预处理器,因为我在它们周围加了括号。 |
![]() |
6
2
我不喜欢每次想在地图上使用foreach时都强制添加typedef的想法。下面是基于BoostForEach代码的实现:
然后您可以在代码中使用它: #在地图munzekonza中定义foreach,在地图中定义foreach
还可以更改值: #在地图munzekonza中定义foreach,在地图中定义foreach
|
![]() |
7
1
对:
|
![]() |
8
0
在C++ 0x中,你可以更容易地做:
|
![]() |
zayd · 在C中Boost程序选项创建的矢量上迭代++ 1 年前 |
![]() |
Mimi · CMake使用了错误的boost include目录 1 年前 |
![]() |
zxctatar · 如何在一个类中运行两个异步定时器 1 年前 |
![]() |
Adrian · 如何确定boost::可选的(和其他)API? 1 年前 |
![]() |
TooTone · boost-pfr是如何获取结构的字段名称的? 1 年前 |