c++中的meta共找到40418条结果

编程语言底层之函数执行  - Gitchat Gitchat

函数调用概况 一个进程启动后,由线程来执行所有的代码,当线程执行一个函数的时候,究竟会发生什么呢?我们用一个简单例子来描述和扩展这个系列的故事。 例如,main()函数调用add(x,y)函数,执行函数的时候,首先在栈上分配main()函数内存空间,接下来分配add()函数内存空间,add()函数执行完需要恢复main()函数的内存空间,就需要做现场保护和恢复。在add(x,y)函数执行之前,少不了参数复制,如何实现参数传递的过程呢?理论上所有参数都是复制的,复制的到底是什么? 知道了普通函数的调用过程后,还有一些特殊函数调用过程是怎么样的呢。匿名函数已经成为现在语言很重点的标志,像 JS 里面大量使用匿名函数,Java 或者 C# 类似 Lambda 表达式,匿名函数调用上会有什么差别?作为返回值的匿名函数、直接调用匿名函数两种调用方式在语言底层有哪些不同的处理。 除了匿名函数,还有闭包这样的形态,闭包是通过指针引用环境变量,就会导致环境变量生命周期延长和在堆分配。那么闭包怎么调用的,既然引用环境变量,怎么处理数据竞争问题的。 当然,平时也可能去写递归调用,递归调用容易引起堆栈溢出,

inlinevoidprint_item(size_tconsti,size_tconstj){std::cout ...(2014-02-17 16:17:48)

啊 ...(2012-11-20 15:58:58)

Linux 内核 C 语言深度解析  - Gitchat Gitchat

Linux 内核驱动中的奇怪语法 大家在看一些 GNU 开源软件,或者阅读 Linux 内核、驱动源码时会发现,在 Linux 内核源码中,有大量的 C 程序看起来“怪怪的”。说它是C语言吧,貌似又跟教材中的写法不太一样;说它不是 C 语言呢,但是这些程序确确实实是在一个 C 文件中。此时,你肯定怀疑你看到的是一个“假的 C 语言”! 比如,下面的宏定义: #define mult_frac(x, numer, denom)( \ { \ typeof(x) quot = (x) / (denom); \ typeof(x) rem = (x) % (denom); \ (quot * (numer)) + ((rem * (numer)) / (denom)); \ } \ ) #define ftrace_vprintk(fmt, vargs) \ d

本系列全部转载自kuibyshev.bokee.com1.引论C++的发展史是一个不断吸收程序设计领域精华和不断积累充实语言特性的过程。它的创造者Stroustrup在这门新的编程语言草创之初就定下了几个基本的目标,二十年过去了,至今这些目标仍然是C++继续发展的指南针。其中他明确指出,这种语言不应 ...(2007-08-30 23:01:00)

本系列全部转载自kuibyshev.bokee.com1. 模板元编程的基本用途1.1.       数值计算上文提及的所有关于模板元编程的例子都是在编译时的数值计算,这是模板元编程的最简单直接的使用方法。数值计算主要利用模板的特化和局部特化能力进行递归演算,模板类被视为元函数,利用类中的一个静态常 ...(2007-08-30 23:06:00)

Linux GDB 调试指南  - Gitchat Gitchat

大家好,我是范蠡,目前在某知名互联网旅游公司基础框架业务部技术专家组任开发经理一职。 本系列课程的主题是 Linux 后台开发的 C/C++ 调试,通俗地说就是 GDB 调试。GDB(GNU Debugger)是类 Unix(如 Linux)操作系统下的一款开源的 C/C++ 程序调试器。最初是在 1988 年由理查德 · 马修 · 斯托曼(Richard Stallman)所撰写,之后以 GNU 通用公共许可证(GNU General Public License,GNU GPL)的许可方式将软件发布,因此 GNU Debugger 是一套自由软件。发布后的 1990 年-1993 年间则由任职于 Cygnus Solutions 公司的约翰 · 吉尔摩(John Gilmore)负责后续的软件维护工作,点击这里了解其历史详情。 0.1 为什么要写这个课程 我从学生时代到进入软件开发这个行业,不知不觉已经十余年了,真是时光荏苒、光阴如梭。这些年,先后在网游公司做过游戏服务器,为上海某交易所做过金融交易系统、在金融证券公司做过股票证券交易系统和即时通讯软件、在音视频直播公司做过直播服务

本系列全部转载自kuibyshev.bokee.com1.Boost中的MPL库分析MPL是由DavidAbrahams和AlekseyGurtovoy为方便模板元编程而开发的库,2003年被Boost吸纳为其中的一员,此后又历经一些大幅度修改,目前已经相当完善,其最新版本于2004年11月发布。M ...(2007-08-30 23:07:00)

本系列全部转载自kuibyshev.bokee.com1. 引论C++的发展史是一个不断吸收程序设计领域精华和不断积累充实语言特性的过程。它的创造者Stroustrup在这门新的编程语言草创之初就定下了几个基本的目标,二十年过去了,至今这些目标仍然是C++继续发展的指南针。其中他明确指出,这种语言不 ...(2007-08-30 23:01:00)

手把手教你编写 QQ 机器人  - Gitchat Gitchat

写在前面 QQ 机器人是一个很有趣的小项目,同时也是一个提升编程能力的一个不错的项目,其中涉及很多编程必备的知识,如并发编程、设计模式等。目前网络上也有一些教程,大都是使用强大的中文编程语言之一 E 语言编写的,很少有使用 C/C++ 编写的适合新手上手的教程,所以我计划有机会写一些适合 C/C++ 新手的 QQ 机器人制作教程,这在里也很感谢 GitChat 平台提供这次机会。我希望通过达人课的分享与各位同学互相学习、一起进步,课程中如有错误的地方还望各位指正与包容。 本篇概要: 什么是 QQ 机器人及效果展示 本课程的目标 本课程的适合人群 如何学习本课程以及课前准备 什么是 QQ 机器人及效果展示 QQ 机器人是腾讯 QQ 的一款插件应用,机器人通过预定的规则和与群友互动娱乐,帮助管理群,作为智能客服等。QQ 机器人应用的场景很多很多,下面展示一些机器人的功能。 作为群管理 查词典功能 互动讲段子 群内签到等互动游戏 QQ 机器人可以结合多种技术,制作各种好玩有趣的功能。 课程的目标 首先当然是制作好玩的机器人啦,本篇教程将带领大家一步一步的制

本系列全部转载自kuibyshev.bokee.com1.模板元编程的原理1.1.函数式编程1.1.1.函数式编程的概念从上面的例子可以看出,由于模板元编程借助的是C++模板的特化能力,使它的设计方法迥异于普通的C++编程习惯。比如我们不能够在元函数中使用变量,编译期显然只可能接受静态定义的常量,也 ...(2007-08-30 23:02:00)

本系列全部转载自kuibyshev.bokee.com1. Boost中的MPL库分析MPL是由DavidAbrahams和AlekseyGurtovoy为方便模板元编程而开发的库,2003年被Boost吸纳为其中的一员,此后又历经一些大幅度修改,目前已经相当完善,其最新版本于2004年11月发布。 ...(2007-08-30 23:07:00)

OSGI for C++——通往架构师之路  - Gitchat Gitchat

CTK 是什么 CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit。 Github 地址:https://github.com/commontk CTK 标志 Logo 是一个品牌的形象,对外它传递的是一种精神和理念,所以绝大多数组织都有着与自己相符的标志。Apple 的标志是一个被咬了一口的苹果,Microsoft 的标志是一面窗户(至少最初是),而 CTK 的标志是: 第一印象,你是否和我一样,觉得它不够时尚,甚至很丑。 但若仔细看,你会发现这个设计很有意思,像一群人环绕着“CTK”三个字母,举着双臂对着它欢呼。简洁、巧妙,在图形上给予了 CTK 最鲜活的注解,疯狂打 Call 吧! CTK 的诞生 在 2009 年 6 月,由 MBI 在海德堡(德国)的 DKFZ 主办了一场关于 CTK 的研讨会,会议的目的有两个: 召集一些利用 BSD 风格许可、且从事 FOSS(Free Open Source Software)医学图像计算平台开发的团队; 探讨有意义的协调和整合的方式。 会议的第一天是介绍软件(模块化的体系结构),第二天是头脑风暴

#includetemplatestructFactorial{enum{value=N*Factorial::value};};templatestructFactorial{enum{value=1};};intmain(){std::cout::value ...(2014-08-31 11:13:39)

本系列全部转载自kuibyshev.bokee.com1.模板元编程的基本用途1.1.数值计算上文提及的所有关于模板元编程的例子都是在编译时的数值计算,这是模板元编程的最简单直接的使用方法。数值计算主要利用模板的特化和局部特化能力进行递归演算,模板类被视为元函数,利用类中的一个静态常量保存结果。由于 ...(2007-08-30 23:06:00)