热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通用唯一指针

如何解决《通用唯一指针》经验,为你挑选了1个好方法。

以下是我的示例代码:

#include 
#include 
#include 
using namespace std::placeholders;

template 
void myfunc(std::unique_ptr input, std::function)> callback)
{
        auto msg = std::make_unique();
        callback(std::move(msg));
    return;
}

class Ret
{
public:
Ret(){}
void BRet(std::unique_ptr r)
{
std::cout <<"Called Me!!!" < input, std::function)> callback)
{
myfunc(std::move(input), callback);
}

int main()
{
std::unique_ptr a = std::make_unique();
Ret r1;
std::function)> f = std::bind(&Ret::BRet, &r1, _1);
test(std::move(a),f);
}

当我编译并执行代码时,我得到以下输出:

$ c++ --std=c++14 -g try17.cpp

MINGW64 /c/test
$ ./a.exe
Called Me!!!
1
MINGW64 /c/test
$

我不确定在控制台上打印'1'的位置以及如何进行测试以接受通用的唯一指针 - 我的意思是现在可以调用任何类型的测试方法而不是'In and Ret'类型?



1> Some program..:

1来源于此行:

std::cout <<"Called Me!!!" <

请注意,最后使用std::fflush.那不是std::flush操纵者而是std::fflush功能.

函数衰减到一个总是为true的布尔值,这就是你得到1打印的原因.

请注意,std::flush不需要使用(操纵器),因为std::endl将刷新流.另请注意std::endl,除非您明确要刷新流,否则通常也不需要.打印普通换行通常就足够了:

std::cout <<"Called Me!!!\n";


推荐阅读
author-avatar
崔颖2849464
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有