小编Lib*_*aul的帖子

将非常量左值引用绑定到右值

#include <iostream>
using namespace std;

int main() {
    int &&rfint = 10;
    int &l = rfint;
    std::cout << l << std::endl;
    std::cout << ++l << std::endl;
    std::cout << &l << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用上述构造,我可以10通过非常量左值引用直接操作prvalue l。我什至可以接受prvalue的地址。这是如何运作的?与延长寿命有关吗?

c++

5
推荐指数
1
解决办法
202
查看次数

移动派生类的构造函数

我有两节课:

template<typename T>
class base{
    T t;
public:
    base(base &&b): t(std::move(b.t)){}
};

template<typename T, typename T2>
class derived : protected base<T>{
    T2 t2;
public:
    derived(derived &&d): base<T>(std::move(d)), t2(std::move(d.t2)){}
};
Run Code Online (Sandbox Code Playgroud)

我将整个d对象移动到derived move-constructor初始化base部分并d变得无效,但我仍然需要它来使用它的部分进行t2初始化

可以做这样的事吗?

c++ constructor initialization move-semantics c++11

5
推荐指数
1
解决办法
3168
查看次数

DEFAULT 和赋值运算符之间的 PL/SQL 区别

我是 PL/SQL 的新手,这个问题似乎很“幼稚”,所以我提前很抱歉,但谷歌根本没有帮助我......

以下程序之间有什么区别吗?

Procedure p1(a Number DEFAULT 0) Is
Begin
    DBMS_OUTPUT.put_line(a);
End;


Procedure p2(a Number := 0) Is
Begin
    DBMS_OUTPUT.put_line(a);
End;
Run Code Online (Sandbox Code Playgroud)

我已经检查过它们,所以当我在没有 args 的情况下调用它们时,输出是0,但我不确定是否有任何副作用。

oracle plsql

5
推荐指数
1
解决办法
5420
查看次数

PostgreSQL 通过 SELECT ... FOR UPDATE 进行间隙锁定

MySQL/InnoDB 中使用了一个带间隙锁的查询:

SELECT id, time, count
FROM table_a
WHERE time
    BETWEEN DATE_SUB(NOW(), INTERVAL 24 HOUR)
    AND NOW()
FOR UPDATE
Run Code Online (Sandbox Code Playgroud)

它锁定time范围并返回最近的记录(如果存在)(过去 24 小时内)。如果不是 - 会话在过去 24 小时内仍然拥有锁,以安全地插入新记录。

是否可以在 PostgreSQL 中在整个 24 小时持续时间内(即使没有记录)进行相同的间隙锁定?

postgresql locking

5
推荐指数
1
解决办法
1306
查看次数

MySQL CONCAT性能与PHP串联性能

我有SQL SELECT2个字段的请求:

SELECT `a`, `b` FROM `t`
Run Code Online (Sandbox Code Playgroud)

ab都是VARCHAR(255)

我必须以这种方式将它们连接起来: a (b)

我可以在数据库级别执行此操作:

SELECT CONCAT(`a`, ' (', `b`, ')') FROM `t`
Run Code Online (Sandbox Code Playgroud)

或在PHP脚本中:

$result = $resp['a'].' ('.$resp['b'].')';
Run Code Online (Sandbox Code Playgroud)

哪种方法更正确,更有效?

PS我可以在自己的计算机上对其进行测试,但是:

  1. 不同硬件上的结果可能有所不同;
  2. 我想知道这两种方法的利弊,因此我可以在自己的项目中应用最佳实践。

php mysql sql performance concatenation

0
推荐指数
1
解决办法
600
查看次数