标签: temporary

暂时将工作副本切换到特定的Git提交

如何切换到特定的Git提交而不会丢失之后的所有提交

我希望更改本地文件,但提交'数据库将保持不变,只有当前位置指针设置为当前选定的提交.

我想将文件的状态更改为特定的提交,运行项目,完成后,将文件恢复到上次提交.

如何在不压缩整个项目文件夹的情况下执行此操作?

git commit temporary

234
推荐指数
3
解决办法
10万
查看次数

为什么非const引用不能绑定到临时对象?

为什么不允许对一个临时对象进行非const引用,哪个函数getx()返回?显然,这是C++标准禁止的,但我对这种限制的目的感兴趣,而不是对标准的引用.

struct X
{
    X& ref() { return *this; }
};

X getx() { return X();}

void g(X & x) {}    

int f()
{
    const X& x = getx(); // OK
    X& x = getx(); // error
    X& x = getx().ref(); // OK
    g(getx()); //error
    g(getx().ref()); //OK
    return 0;
}
Run Code Online (Sandbox Code Playgroud)
  1. 很明显,对象的生命周期不是原因,因为C++标准不禁止对对象的持续引用.
  2. 很明显,上面的示例中的临时对象不是常量,因为允许调用非常量函数.例如,ref()可以修改临时对象.
  3. 此外,ref()允许您欺骗编译器并获取此临时对象的链接,这解决了我们的问题.

此外:

他们说"为const引用分配一个临时对象可以延长这个对象的生命周期","但是对于非const引用却没有任何说法".我的其他问题.以下赋值是否延长了临时对象的生命周期?

X& x = getx().ref(); // OK
Run Code Online (Sandbox Code Playgroud)

c++ const reference temporary c++-faq

221
推荐指数
6
解决办法
9万
查看次数

const引用类成员是否延长了临时生命?

为什么这样:

#include <string>
#include <iostream>
using namespace std;

class Sandbox
{
public:
    Sandbox(const string& n) : member(n) {}
    const string& member;
};

int main()
{
    Sandbox sandbox(string("four"));
    cout << "The answer is: " << sandbox.member << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

给出输出:

答案是:

代替:

答案是:四

c++ temporary const-reference ctor-initializer

157
推荐指数
3
解决办法
4万
查看次数

为什么我需要std :: get_temporary_buffer?

我应该用什么目的std::get_temporary_buffer?标准说明如下:

获得一个指向存储的指针,足以存储多达n个相邻的T对象.

我认为缓冲区将在堆栈上分配,但事实并非如此.根据C++标准,这个缓冲区实际上不是暂时的.这个函数对全局函数有什么优势::operator new,它不构造对象.我是对的,以下陈述是等同的吗?

int* x;
x = std::get_temporary_buffer<int>( 10 ).first;
x = static_cast<int*>( ::operator new( 10*sizeof(int) ) );
Run Code Online (Sandbox Code Playgroud)

这个函数只存在于语法糖吗?为什么有temporary它的名字?


1996年7月1日Dr. Dobb's Journal提出了一个用例来实现算法:

如果没有缓冲区可以分配,或者它小于请求的缓冲区,算法仍能正常工作,它只会减慢速度.

c++ buffer memory-management stl temporary

84
推荐指数
4
解决办法
8783
查看次数

临时变量会减慢我的程序吗?

假设我有以下C代码:

int i = 5;
int j = 10;
int result = i + j;
Run Code Online (Sandbox Code Playgroud)

如果我多次循环,使用它会更快int result = 5 + 10吗?我经常创建临时变量以使我的代码更具可读性,例如,如果使用某个长表达式从某个数组中获取这两个变量来计算索引.这在C中是否表现不佳?其他语言怎么样?

c performance temporary

72
推荐指数
5
解决办法
5921
查看次数

使用索引,使用临时,使用filesort - 如何解决这个问题?

我正在开发一个事件跟踪系统,该系统使用少量查找表以及主要日志记录表.在我正在编写的报告中,可以选择一个对象来查看统计信息.界面按重要性降低(即命中)的顺序显示所有对象.

这两个表的架构(略微修剪,但你得到了要点):

CREATE TABLE IF NOT EXISTS `event_log` (
  `event_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(5) DEFAULT NULL,
  `object_id` int(5) DEFAULT NULL,
  `event_date` datetime DEFAULT NULL,
  PRIMARY KEY (`event_id`),
  KEY `user_id` (`user_id`),
  KEY `object_id` (`object_id`)
);

CREATE TABLE IF NOT EXISTS `lookup_event_objects` (
  `object_id` int(11) NOT NULL AUTO_INCREMENT,
  `object_desc` varchar(255) NOT NULL,
  PRIMARY KEY (`object_id`)
);
Run Code Online (Sandbox Code Playgroud)

我遇到问题的查询如下.它与我的约100个条目的表一起工作正常,但是EXPLAIN让我有点担心.

    explain SELECT 
            el.object_id, 
            leo.object_desc, 
            COUNT(el.object_id) as count_rows
        FROM 
            event_log el 
            LEFT JOIN lookup_event_objects leo ON leo.object_id = el.object_id
        GROUP BY 
            el.object_id
        ORDER BY …
Run Code Online (Sandbox Code Playgroud)

mysql optimization select temporary filesort

50
推荐指数
2
解决办法
6万
查看次数

Go的临时地址?

处理这种情况最简洁的方法是什么:

func a() string {
    /* doesn't matter */
}

b *string = &a()
Run Code Online (Sandbox Code Playgroud)

这会生成错误:

不能取一个()的地址

我的理解是,如果采用地址,Go会自动将局部变量提升到堆中.这里很清楚,要采用返回值的地址.处理这个问题的惯用方法是什么?

pointers return temporary rvalue go

38
推荐指数
3
解决办法
2万
查看次数

MySQL:在select语句中自动增加临时列

如何使用MySQL在select语句中创建和自动增加临时列?

这是我到目前为止:

SET @cnt = 0;
SELECT
    (@cnt =@cnt + 1) AS rowNumber,
    rowID
FROM myTable
WHERE CategoryID = 1
Run Code Online (Sandbox Code Playgroud)

哪个回报:

+++++++++++++++++++++
+ rowNumber | rowID +
+++++++++++++++++++++
+  (NULL)   |   1   +
+  (NULL)   |   25  +
+  (NULL)   |   33  +
+  (NULL)   |   150 +
+  (NULL)   |   219 +
+++++++++++++++++++++
Run Code Online (Sandbox Code Playgroud)

但是我需要:

+++++++++++++++++++++
+ rowNumber | rowID +
+++++++++++++++++++++
+  1        |   1   +
+  2        |   25  +
+  3        |   33  +
+  4        | …
Run Code Online (Sandbox Code Playgroud)

mysql temporary auto-increment

38
推荐指数
3
解决办法
8万
查看次数

临时的一生

以下代码工作正常,但为什么这是正确的代码?为什么foo()返回的临时的"c_str()"指针有效?我想,当输入bar()时,这个临时性已经被破坏了 - 但它似乎不是这样的.那么,现在我假设foo()返回的临时值将在调用bar()之后被销毁 - 这是正确的吗?为什么?

std::string foo() {
  std::string out = something...;
  return out;
}

void bar( const char* ccp ) {
  // do something with the string..
}

bar( foo().c_str() );
Run Code Online (Sandbox Code Playgroud)

c++ temporary c++-faq lifetime full-expression

37
推荐指数
2
解决办法
3149
查看次数

C ++-使用const引用来延长临时成员,确定成员或UB成员?

考虑这样的事情:

#include <iostream>

struct C {
    C(double x=0, double y=0): x(x) , y(y) {
        std::cout << "C ctor " << x << " " <<y << " "  << "\n";
    }
    double x, y;
};

struct B {
    B(double x=0, double y=0): x(x), y(y) {}
    double x, y;
};

struct A {
    B b[12];

    A() {
        b[2] = B(2.5, 14);
        b[4] = B(56.32,11.99);
    }
};


int main() {
    const B& b = A().b[4];
    C c(b.x, b.y);
}
Run Code Online (Sandbox Code Playgroud)

当我用-O0编译时,我得到了打印

C ctor …
Run Code Online (Sandbox Code Playgroud)

c++ temporary lifetime language-lawyer reference-binding

37
推荐指数
1
解决办法
1072
查看次数