![]() |
1
35
|
![]() |
2
81
所以即使你有
会保持,这是不允许的。 但是 许多编译器将执行所谓的“空基类优化”操作:
在这里,它很适合
所以
所以A
这意味着如果
但是如果你使用
和
|
![]() |
3
11
有时您需要从一个函数中返回2个值,而仅仅为此而创建一个类通常是多余的。 在这些情况下,这对情侣很方便。 我认为增强:压缩的_对能够优化掉0大小的成员。 这对于图书馆中的重型模板机械最有用。 如果您直接控制类型,则与此无关。 |
![]() |
4
11
听到压缩后的_对关心几个字节听起来很奇怪。但是,当考虑到压缩对可以在哪里使用时,它实际上是很重要的。例如,让我们考虑下面的代码:
在上述情况下,使用压缩对可能会突然产生很大的影响。如果boost::bind存储函数指针和占位符,会发生什么情况
现在,对于这样一个小的缓冲区,一个合理的(也许仍然很小)限制是8字节。也就是说,我们非常简单的绑定对象
不
安装在小的缓冲区中,需要存储新的操作员。如果上面的绑定对象将使用
所以,仅仅为几个字节浪费大量的思想,实际上可能会对性能产生重大影响。 |
![]() |
5
3
它是存储一对值的标准类。它被一些标准函数返回/使用,比如
|
![]() |
6
3
std::pair对于STL中的其他几个容器类很有用。 例如:
这两个存储std::键和值对。 当使用map和multipmap时,通常使用指向对的指针访问元素。 |
![]() |
7
3
附加信息:当对的类型之一是空结构时,boost::compressed_对很有用。当从其他类型以编程方式推断对的类型时,这通常用于模板元编程。最后,您通常会得到某种形式的“空结构”。 我更喜欢std::pair用于任何“正常”用途,除非您喜欢使用重型模板元编程。 |
![]() |
8
3
它只是一个在引擎盖下有两个变量的结构。 我实际上不喜欢使用std::pair作为函数返回。代码的读者必须知道什么。第一个是什么,第二个是什么。 我有时使用的折衷方法是,在清晰地命名引用的同时,立即创建对.first和.second的常量引用。 |
![]() |
9
2
它和简单的两元素元组一样。它是在第一版的 STL 在编译器不广泛支持模板和元编程技术的时候,这将需要实现更复杂的元组类型 Boost.Tuple .
它在许多情况下都很有用。
|
![]() |
10
1
有时,有两条信息总是一起传递,不管是作为一个参数,还是作为返回值,或者其他什么。当然,您可以编写自己的对象,但如果它只是两个小原语或类似的东西,有时一对看起来就很好了。 |
![]() |
zayd · 在C中Boost程序选项创建的矢量上迭代++ 1 年前 |
![]() |
Mimi · CMake使用了错误的boost include目录 1 年前 |
![]() |
zxctatar · 如何在一个类中运行两个异步定时器 1 年前 |
![]() |
Adrian · 如何确定boost::可选的(和其他)API? 1 年前 |
![]() |
TooTone · boost-pfr是如何获取结构的字段名称的? 1 年前 |