gpt4 book ai didi

c++ - 函数签名末尾的 && 是什么意思(在右括号之后)?

转载 作者:IT老高 更新时间:2023-10-28 21:46:09 24 4
gpt4 key购买 nike

Workarounds for no 'rvalue references to *this' feature 中,我看到以下成员函数(转换运算符):

template< class T >
struct A
{
operator T&&() && // <-- What does the second '&&' mean?
{
// ...
}
};

第二对&&是什么意思?我不熟悉那种语法。

最佳答案

这是一个引用值限定符。这是一个基本示例:

// t.cpp
#include <iostream>

struct test{
void f() &{ std::cout << "lvalue object\n"; }
void f() &&{ std::cout << "rvalue object\n"; }
};

int main(){
test t;
t.f(); // lvalue
test().f(); // rvalue
}

输出:

$ clang++ -std=c++0x -stdlib=libc++ -Wall -pedantic t.cpp
$ ./a.out
lvalue object
rvalue object

取自 here .

关于c++ - 函数签名末尾的 && 是什么意思(在右括号之后)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15320015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com