小编Tob*_*fer的帖子

尽管删除了复制构造函数,但 C++14 函数返回对象数组

从旧的 C++98 我知道,如果函数声明/定义中没有提到,则返回类型复制(按值),否则使用地址运算符“&”。

现在我正在使用 auto 和 decltype 的概念来让编译器确定返回类型。在一个例子中,我写了一个class A 除了默认的 ctor 之外的任何其他 ctors 都被删除的地方(A 类取自一个真实的项目 - 我调查了一些问题)。类 A 的对象与 etl::array(嵌入式模板库,在堆栈上以固定大小创建的数组)一起构造,请参见下面的示例代码。

#include <etl/array.h>
#include <iostream>

class A {
public:
    A(std::uint8_t val) : _val(val){}
    A(A const&) = delete;      // copy delete
    A& operator=(A&) = delete; // copy assign delete
    A(A&&) = default;          // move default
    A& operator=(A&&) = delete;// move assign delete
    ~A() = default;
    void whoAmI(){std::cout << " I am A! " << std::endl;}
private:
    std::uint8_t …
Run Code Online (Sandbox Code Playgroud)

c++ c++14 decltype-auto

2
推荐指数
1
解决办法
67
查看次数

标签 统计

c++ ×1

c++14 ×1

decltype-auto ×1