29得票3回答
在同一表达式中,两个临时变量的地址是否保证不同?

考虑下面的程序:#include <iostream> int const * f(int const &i) { return &i; } int main() { std::cout << f(42); // #1 std:...

25得票7回答
在for循环中,pIter != cont.end()的性能表现问题

I was getting through "Exceptional C++" by Herb Sutter lately, and I have serious doubts about a particular recommendation he gives in Item 6 - Tem...

9得票1回答
对临时变量的常量引用

阅读完Herb Sutter在博客上的this article后,我做了一些实验,遇到了一些令我困惑的问题。我正在使用Visual C++ 2005,但如果这是实现相关的,我会感到惊讶。 以下是我的代码: #include <iostream> using namespace...

50得票4回答
为什么通过函数传递的临时对象,即使使用const引用也不能延长其生命周期?

在下面的简单示例中,为什么不能将 ref2 绑定到 min(x,y+1) 的结果? #include <cstdio> template< typename T > const T& min(const T& a, const T& b){ r...

28得票5回答
临时对象何时被销毁?

以下代码会输出one, two, three。这是所有C++编译器都期望的且正确的吗? class Foo { const char* m_name; public: Foo(const char* name) : m_name(name) {} ~Foo(...

9得票2回答
在临时字符串上使用string::c_str的用法

关于临时对象何时被销毁,以下做法是否有效: FILE *f = fopen (std::string ("my_path").c_str (), "r"); 在评估fopen的第一个参数之后,还是在fopen调用之后,暂时文件会立即被销毁? 使用以下代码进行测试: #include ...

17得票3回答
一个初始化临时变量什么时候被销毁?

今天回答了一些问题后,我构建了这个实验。struct A { bool &b; A(bool &b):b(b) { } ~A() { std::cout << b; } bool yield() { return true; } }; ...

19得票2回答
临时寿命延长

标准的第12.2.5节规定: 函数调用中引用参数的临时绑定(5.2.2)持续到包含该调用的完整表达式完成为止。函数返回语句中返回值的临时绑定(6.6.3)持续到函数退出为止。在所有这些情况下,在初始化引用的表达式求值期间创建的临时值(除了与引用绑定的那个临时值)将在创建它们的完整表达式结束时...

15得票3回答
C++基于范围的for循环遍历valarray右值无法工作

我想迭代一个临时的valarray,但它无法正常工作。这是我的(不起作用的)代码:#include <iostream> #include <valarray> int main() { using namespace std; vala...

15得票1回答
在C语言中,如何在临时(复合字面量)参数中获取地址?

我无法想象这不是重复的问题,但由于更复杂的场景特别是涉及C ++的情况似乎占据了讨论的主导地位0。 在C99中,从函数调用的参数列表中构造临时对象并获取其地址是否合法? 例如,像以下的init_list或init_desig_init:typedef struct { int x; ...