问题标签 [noncopyable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
50 浏览

c++ - 用检查复制/移动省略

考虑一下。有一个不可复制、不可移动的类,并且为它定义了一些谓词:

由于C++17中保证复制/移动省略,我们可以拥有:

问题是:如何定义,如果它返回getGoodA则将转发,否则将抛出异常?有可能吗?getAgood

0 投票
1 回答
57 浏览

c++ - 使用 gcc 8.4 设置具有不可复制类型的 unordered_map 时出错

见这里:https ://godbolt.org/z/MW3jW6

使用 gcc 8.4(godbolt 中的 8.3)我的代码无法编译。使用 gcc 10.x 似乎可以编译。但我无法弄清楚错误到底告诉我什么......

这是供参考的代码:

如果我non_coom m_itemitem类中删除它,那么它会编译。我想我只需要创建移动构造函数,但这还不够。map.emplace - 所以我读过 - 应该将右值引用(移动 c'tor)作为参数。所以我想我在这里有点困惑。

我想要做的只是将 new items 插入到地图中 - 我不关心处理内容 - 所以互斥锁和条件 var 将只是默认构造的。

注意:查看我在链接中得到的错误 - 它非常大,但如果需要,我可以将其复制到此处

0 投票
1 回答
126 浏览

c++ - 用 std::string_view 替换通过引用传递的 const std::string

我有以下方法std::string作为输入参数。

int func(const std::string &filename);

从它的签名来看,输入类型是通过引用传递的(不复制),不应更改(通过const前缀)。

它是否等同于使用std::string_view,它也用于只读?

int func(std::string_view filename);

如果不是,那么它们在哪些方面不相似(运行时、内存消耗、功能等)