C++0x:如何获取lambda表达式的返回类型

最近看了老赵的博文,意识到lambda不仅仅提供了一个仿函数的语法糖,而在于能封装环境变量,从而更轻松的实现异步函数调用. 之前利用模板实现过异步函数调用,因为VS2008以前的C++不支持variadic templates和lambda,所以,其实现是用宏实现的0至N个参数的仿函数.因此,本...

2012-03-26 14:59:41

阅读数 1562

评论数 0

C++/CLI的性能陷阱

纯C++代码在大多数情况下并不适合直接加入到C++/CLI项目里.相同的纯C++代码,在C++/CLI项目中,效率要比原生代码低得多。各种inline,SSE指令,自动SIMD指令都会失效。如果这个时候,自作聪明的在纯C++代码上关闭托管代码的编译,恭喜你,你中招了----通常情况下,效率变得更低...

2012-01-03 14:31:39

阅读数 1386

评论数 0

C#与C++/CLI的交互的一个细节

C#里面的 out 修饰,对应C++/CLI的 [OutAttribute] T % 初始代码 (C++/CLI): void XXX(IntPtr % handle); (C#): IntPtr handle; XXX(out handle); ...

2011-11-17 11:02:52

阅读数 1614

评论数 0

viscose脚本语言的对外宣布

其实,viscose脚本语言存在已经有四个年头了,但一直仅限于在自己参与的项目里使用,也就身边的人知道和熟悉其语法.今天看见某个人的博客上罗列了一堆国人自己写的语言和平台,而他们的特性都不是viscose想要追求的.特立此文以公布之. viscose其实跟IronPython等基于.Net的脚本...

2011-10-24 10:34:05

阅读数 592

评论数 0

利用模板实例化解决LNK2022错误.

诸如这样的问题 http://social.msdn.microsoft.com/Forums/ar-SA/vcgeneral/thread/a4490504-956f-44d0-a39c-3a4bd36a4aac I have the following lines of c...

2011-10-20 11:45:23

阅读数 2217

评论数 0

VS2010的项目依赖问题

通常,项目依赖是为了解决编译顺序问题,以便于底层代码更改后,上层代码可以自动被编译,从而减少代码不一致导致的错误. VS2010的项目依赖,在.Net的模块中,自动跟"框架和引用"画上了等号.因此,我设置了项目依赖,底层的DLL就自动被添加到了项目引用中,从项目引用中删除了对应

2011-08-16 16:25:32

阅读数 1873

评论数 0

C++/CLI的静态构造函数

不要绝对相信这个东西,不见得一定会调用静态构造函数.单独测试的时候,几乎都没有问题,一旦项目大了后,就不知道什么时候,某个类的静态构造函数就不调用了. 这个时候,如果不是非常必要,宁愿用C++的方法去替换静态构造函数. .Net总体上,BUG还是挺多的,用的时候要小心

2011-08-12 14:24:09

阅读数 663

评论数 0

WM_MOUSEWHEEL在多屏下的BUG

<br />操作系统:Windows7<br /> <br />MSDN是这样描述WM_MOUSEWHEEL的lParam参数的.<br />lParamThe low-order word specifies the x-coordinate of...

2011-04-07 14:31:00

阅读数 906

评论数 0

利用C++的模板模拟.net的代理语法

用了一段时间.net的代理模式,觉得挺好使.且原来C++代码中存在大量需要代理的东西,由于没有近似的东西,都是靠接口实现的,看起来很别扭.遂想我是不是也能做这么一个东西.boost的function不是很熟悉,但基本实现还是明白的.直接用boost::function的话,有点杀鸡用牛刀的感觉,因...

2011-01-11 10:10:00

阅读数 1292

评论数 0

VS2010是一个仓促推出的产品

<br />终于在C++0x的诱惑下,将正在参与的项目转到VS2010下了.真正使用了以后,才发现问题很多,从一些细节来看,vs2010是一个仓促推出的产品.<br />今天,还是决定转回到vs2008下开发,因为vs2010给我当头一棒:<br /> <...

2010-09-10 12:00:00

阅读数 874

评论数 0

给VS2010泼瓢冷水

这段时间,VS2010被炒得很火,她确实也有被炒火的资格,闹得我也从Beta2开始,一路跟随下来.好的地方CSDN上一片一片的,就是没有人说不好的,因此,我说点我发现的问题一:编译错误报告机制还有小缺陷,会错误报告代码出错位置,且错误位置是跨文件的,很难找.发现的原因是Beta2的时候,hash_...

2010-04-24 12:44:00

阅读数 1080

评论数 2

C++/CLI中,托管代码与本机代码销毁顺序

在托管代码的DLL中,即使是C++代码,也跟这个DLL有莫大的关系。如果时机掌握不得当,就会在程序退出的时候出现0xC0020001错误。即本机代码引用了一个托管代码的相关内容,而这个时候托管代码已经卸载了。这个时候,需要将这部分代码完全交由本机代码的DLL来实现。完全的意思是,默认构造函数/析构...

2009-12-22 15:05:00

阅读数 849

评论数 0

双面与VFACE

今发现,在XP下,CullMode=None的情况下,VFace几乎是混乱的;而在Windows7下,是正确的。

2009-09-07 18:10:00

阅读数 817

评论数 1

通过简单快速的设置编译x64位汇编

最近在写64位汇编,设置编译命令是件繁琐而又重复的劳动。网上也有不少文章介绍怎么样编译64位汇编的,但都觉得复杂,有的还需要下载其他的汇编软件,最囧的是:有篇文章给出的下载地址下载下来的文件干脆就直接是木马!既然我们使用VS系列,就不要舍近求远了。使用MS提供的ml64,安全放心,也无兼容性问题。...

2008-09-18 15:07:00

阅读数 2999

评论数 1

庆祝64位程序全速跑起来

其实很早就能正常跑起来了,但是呢,很多用了内嵌汇编的地方编译通不过,就用C++代码来完成对应的功能,相对而言,效率下降不少.故一直在心里没有把它当作完成了看待.这些天钻研了下64位的汇编相关的东西,将大部分重要的汇编代码提取出来,单独写成ASM文件,使用ml64编译成OBJ文件,终于完成了绝大部分...

2008-09-17 22:54:00

阅读数 924

评论数 0

缓存与效率

        在CPU多核的今天,考虑如何利用多核的问题已经摆在了每个程序员的面前。对一个稍微有点经验的程序员而言,OMP无疑是最快的捷径,并且收效非常高,基本能提升1.8倍的效率(双核CPU)。        耐着性子把OMP的介绍文章看完了,在3D应用中实践起来,收效很明显,骨骼计算,皮肤计...

2008-09-11 11:15:00

阅读数 1223

评论数 0

完成端口的BUG?

s = createsocket();    //假定s返回值是10CreateIoCompletionPort(s, m_hCompletionPort, (DWORD_PTR)&A, 0);WSASend(s,...);WSASend(s,...);WSASend(s,...);WSA...

2008-09-01 09:39:00

阅读数 1806

评论数 8

VC的类型推导问题

由于代码要兼容64位系统,所以,跟指针有关联的整数全部都是适用的INT_PTR和UINT_PTR类型。这两个东西在32位系统下被定义成:__w64 int和__w64 unsigned int. 但是,VC的模板参数推导机制里,似乎是没有__w64这样的修饰的,因此,所有的__w64 int被推导...

2008-05-20 14:01:00

阅读数 1134

评论数 3

终于完成了3D空间寻路的心愿

主要工作有三:一、数据组织。根据3D模型得到一个PathMesh,这个PathMesh里记录了三角形与边的邻接信息,边与三角形的邻接信息,边的端点,边的方程(用于求解线段最短距离)。从而间接知道边与边的邻接信息。路径点除了首尾,都通过边来计算。这个数据容易得到。二、路径搜索算法。一开始使用A*算法...

2008-05-08 17:17:00

阅读数 2422

评论数 2

动画抖动

今天终于解决了动画抖动的问题 首先描述下动画抖动的表现:就是将人物拉近到基本充满屏幕的时候,运动比较快的肢端明显运动不平滑。 一开始怀疑动画代码写得有问题,仔细检查代码后没有发现问题。再次怀疑浮点运算误差造成的,因为骨骼动画中,骨骼的运算,是靠从跟骨骼,一级一级级联运算过来的,在肢端级联次数是最多...

2008-05-06 15:45:00

阅读数 4759

评论数 6

提示
确定要删除当前文章?
取消 删除
关闭
关闭