由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教C++ call-by-ref & call-by-val的问题
相关主题
请教C++11的rvalue reflambda的一个疑问
c++ 如何重用一段代码,并把其中加法变成减法请教一个C++ typedef的问题
请教unique_ptr vs auto_ptr问两个C++语法问题
一个C语言的面试题,有点乱,麻烦看一下lambda到底有什么好?
请教一个关于std::function的问题C++11的lambda不会破坏可读性吗?
用STL map的时候怎么自己定义大小比较的关系C++14新特性
function pointer 和 call-back function 有什么区别?C++ interview questions help
请教一个boost::bind的问题有没有办法让一个类的变量只读,不是const?
相关话题的讨论汇总
话题: foo话题: callback话题: void话题: call话题: std
进入Programming版参与讨论
1 (共1页)
A*******e
发帖数: 2419
1
lambda里会出现这种情况:
using Callback = std::function;
vector foo_list;
Callback foo_callback = [&foo_list](Foo foo) {
foo_list.emplace_back(std::move(foo));
}
这是因为下面的函数被认为是同一个函数?
void f(const Foo& foo);
void f(Foo foo);
总觉得上面的用法怪怪的。是不是直接声明为下面这个较好?由caller决定传foo时要
不要move。
using Callback = std::function;
d****i
发帖数: 4809
2
不得不说,为什么要用这么怪里怪气的lambda?为什么不老老实实用平凡朴实的
function pointer或者functor? 还简单易懂容易debug容易维护。

【在 A*******e 的大作中提到】
: lambda里会出现这种情况:
: using Callback = std::function;
: vector foo_list;
: Callback foo_callback = [&foo_list](Foo foo) {
: foo_list.emplace_back(std::move(foo));
: }
: 这是因为下面的函数被认为是同一个函数?
: void f(const Foo& foo);
: void f(Foo foo);
: 总觉得上面的用法怪怪的。是不是直接声明为下面这个较好?由caller决定传foo时要

A*******e
发帖数: 2419
3
用functor是更清楚,但本质问题是一样的。
struct GetFoo {
void operator()(Foo foo) {
v.emplace_back(std::move(foo));
}
vector v;
};
using Callback = std::function;
这里GetFoo可以当Callback用吗?
引入std::move之后,call-by-value和call-by-ref用法有区别了。只读时用ref,需要
复制时用value+move。但编译器似乎还是认为这是同一个函数,故有此疑惑。

【在 d****i 的大作中提到】
: 不得不说,为什么要用这么怪里怪气的lambda?为什么不老老实实用平凡朴实的
: function pointer或者functor? 还简单易懂容易debug容易维护。

1 (共1页)
进入Programming版参与讨论
相关主题
有没有办法让一个类的变量只读,不是const?请教一个关于std::function的问题
问个C++ 编译器临时变量的问题 (转载)用STL map的时候怎么自己定义大小比较的关系
请教struct inside class的问题(C++)function pointer 和 call-back function 有什么区别?
Typescript是不是实际上反 functional programming 的?请教一个boost::bind的问题
请教C++11的rvalue reflambda的一个疑问
c++ 如何重用一段代码,并把其中加法变成减法请教一个C++ typedef的问题
请教unique_ptr vs auto_ptr问两个C++语法问题
一个C语言的面试题,有点乱,麻烦看一下lambda到底有什么好?
相关话题的讨论汇总
话题: foo话题: callback话题: void话题: call话题: std