小编Ste*_*een的帖子

为什么不调用在构造函数中作为参数传递的自由函数?

为什么mystruct( plain_old_function );构造函数不调用默认构造函数,而lambda调用专用的一个(mystruct ( const std::function< std::string() > &func ))?

这可以使用吗?

#include <iostream>
#include <functional>
#include <string>

struct mystruct
{
    mystruct() { std::cout << "Default construct :S" << std::endl; }
    mystruct ( const std::function< std::string() > &func )  {
        std::cout << func() << std::endl;
    }
};

void callme ( const std::function< std::string() > &func )
{
    std::cout << func() << std::endl;
}

std::string free_function(  ) {  return "* Free function"; }


int main()
{

    std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++ lambda constructor function c++11

3
推荐指数
1
解决办法
82
查看次数

标签 统计

c++ ×1

c++11 ×1

constructor ×1

function ×1

lambda ×1