我有以下代码片段.
#include <iostream> #include <functional> using namespace std; struct A { A() { cout << "A "; data = 1; } A(const A& a) { cout << "cA "; data = a.data; } ~A() { cout << " dA"; } int data; }; void f(A& a,function<void(A)> f) { cout << "("; f(a); cout << ")"; } int main() { A temp; auto fun = [](A a) {cout << a.data;}; f(temp,fun); }
输出是:
A (cA cA 1 dA dA) dA
为什么临时复制两次?
我正在使用Visual C(vc140).
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。