自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 问答 (1)
  • 收藏
  • 关注

原创 【无标题】

所以我认为,concept和接口设计模式是有竞争的,concept具有更少的虚函数表,更平坦的内存结构,看起来更有竞争力。c++20的concept是编译期的类型检查,告诉一个类需要有哪些接口。这和类继承一个接口,所达成的效果是一样的。

2024-03-15 18:32:06 124 1

原创 谁是第一个将四元数用于计算旋转的人

“谁是第一个将四元数用于计算旋转的人” ——那些百度不会告诉你的事 四元数的发明者是谁?这很好查,是由爱尔兰数学家哈密顿发明于1843年。无疑,四元数是一项伟大的发明。 但是又是谁天才般地想出将四元数用于计算机图形学中的3D世界的旋转计算的?在内网找了一圈,似乎没有答案。于是翻墙去英文维基看看。 没想到居然有专门的“Quaternions and spatial rotation”这个词条。于是查到,第一次正式提出,是Shoemake, Ken 在1985年的SIGGRAPH上发表的论文《Ani.

2021-10-07 16:22:45 155

原创 时隔四年,再次拾起c++

程序员最大的特点是什么?就是懒。 能自动化的决不手动做,不是必须做的绝对不做。 一个知识,如果不是要临用到就不会去学; 一个文档,如果不是要参考就不会去看。 所以别人问他这个那个,可能回答不上来,会觉得怎么一问三不知啊? 其实还没到需要这些知识的哪一部。 程序员第二大特点是什么?就是动手能力强。

2021-09-24 07:50:04 80

原创 c++17随想

c++17应该不多久就应该出来了吧(应该) 虽然之前好像毙掉过好几个TS,不过最终版出来的时候会怎么样,谁知道呢。 趁这段时间,先把几个确定了的ts先熟悉起来,这里也做个列表作为备忘: optional (C++17)  −  any (C++17) variant (C++17) basic_string_view (C++17) Special mathematical

2017-07-15 14:02:20 380

原创 理解lua的闭包

不知道c++的lambda和lua的闭包是谁先谁后, 不过就我来说,是先学了c++,最近才接触到现代lua。 因此把一切向c++看齐,会不自觉地把一切和c++做对比。 就闭包来说,不就是c++的lambda嘛! 所谓upvalue,也就是一开始按引用捕获,在变量退出生命期时, 拷贝到Functor的成员变量里来,变成了按值捕获。 这算是解释性语言特有的灵活性吧,变量可以

2017-04-22 09:25:38 303

原创 十万太短,三万太长

从一数到十万,有多少人能有耐心数到完呢?事实上,我们每天都要数一遍。 24小时x3600秒 = 86400秒 和十万比起来,三万算是小的了,但是从一数到三万又太长,长到要花一生来数完。 365天x100年 = 36500天 我们就每天十万十万地这么数着,三万个日夜也就这么轮回着。 不管高低贵贱,谁也跳不出这个循环。 这不是和for循环里的“i”很像吗? 循环内

2017-04-21 13:57:14 240

原创 Lua面向对象化和c++脚本化

最近在重新学Lua,最新的Lua已经有类似定义类的语法了, 联系前一阵子感叹的c++脚本语言化, 现在感叹脚本语言的c++化,面向对象化。 程序员到底要什么呢?面向对象的不用编译直接解释执行的语言? 那不就是java吗? 现在LLVM好像很火,谁用LLVM写一个c++虚拟机,就没lua什么事了。

2017-04-14 23:18:49 282

原创 幸运与不幸

什么是幸运:你在microsoft工作,并被派到c++联络小组; 什么是不幸:你在microsoft工作,并被派到khronos联络小组。

2017-03-16 17:15:33 339

原创 3月7、8两日,vs2017发布关注点备忘

3月7日, 11:30  - 12:00  浏览 新C# 特性 12:00 PM - 12:30 PM PST debug新技术介绍 12:30 PM - 1:00 PM PST 用xamarin的c#写源生Android, iOS程序 03:30 PM - 04:00 PM PST 作为c

2017-03-04 10:40:14 309

原创 C++的升级策略

C++的升级策略是稳健的。对于旧版本中饱受诟病的问题(例如对类型收窄不做检查的问题),c++的解决方法是在新的特性中(这里是初始化列表)改进和改正,而原来的变量初始化那一套不做任何改变。这么做有两个好处:1是把对现有代码的影响降到最低;2是鼓励人们转移到具有类型收窄检查的新特性——初始化列表去。        这不禁让我想起了wow的版本升级策略。把两者做个对比,还是很有意思的。

2017-02-15 21:00:30 510

原创 哪里有类!

哪里有类! 我只看到名字空间。。。 这是前不久的一个感悟,不记得当时看了什么,反正感触挺深的。 稍微换个话题,说一说c++吧。 最近在看modern c++ designed,这是一本2000年出的书, 2003年就有中文翻译了吧,我也挺早就在网上找到了中文资源。 但是当时看的时候只觉得云里雾里,因为对他要解决的问题完全不熟悉(因为缺少实战经验) 自然关于解决

2017-02-15 20:03:12 200

原创 吾生也有涯,而知也无涯。

活到快40岁,算一算今后大概还能活50年吧, 50年一到,现在不管学多少知识都报废。 为效率着想应该有选择地去学习新知识了。 我还需要什么知识? 我还想学什么知识? 现在也终于切身体会到 “吾生也有涯,而知也无涯”了。

2017-02-15 19:46:53 396

原创 关于模板元编程的一点反思

int2type,supsubclass,typelist。。。 模板元编程真是太神奇了! 我也能用他们来创造什么神奇的东西吗? 问这个问题,就等于问 我能拿消防救火用的皮带水管来做什么神奇的事情吗? 我想除了用来玩sm捆绑之外, 大概还能用来把人吊死。 这里问题的本质是: 工具的创造者当然知道工具该怎么用,能玩出什么花来, 也用工具实现了一切可以

2017-02-14 19:26:23 248

翻译 Effective Modern C++ 条款9补完 理解模板类型推断

http://blog.csdn.net/big_yellow_duck/article/details/52224068 看大黄鸭的《Effective Modern C++》翻译时,第9款最后有一小部分没有翻,于是去看英文版补全, 看的时候顺便翻译了一下。然后今天校对过后把它发出来。 条款9  理解模板类型推断  (最后小半部分) 如果你做过模板元编程(temple

2017-02-05 12:56:23 553

转载 Effect Modern c++翻译

感谢 CSDN“大黄鸭xD”,《 Effect Modern c++》熟肉已经翻译好了。 http://blog.csdn.net/big_yellow_duck?viewmode=contents

2017-01-28 22:51:51 1198

原创 该不该写const?

今天因为某处偷懒没写const,而引发了一个bug。 花去了我1小时除错。 懊恼之余,也咬牙切齿地想,今后一定不能省, const该写还是要写。 转念又一想,且慢,这事还得精算一算。 假设今后所有const我都写上,写一个const花费2秒, 那么一共需要多花多少秒? 如果这个时间大于了除错的时间, 那么还有写的必要吗? 如果还是有,那么这个时间要大到除错时间的几倍,

2017-01-26 13:34:04 273

原创 auto超神了!!!

auto print_decurship = [](auto& c, char* s) { cout for (auto& i : c) { cout } cout }; print_decurship(cli1, "Obj1: "); print_decurship(cli2, "obj2; "); 这auto已经不仅仅是占位符了,而是模板了!!

2017-01-25 23:26:48 314

原创 初始化全局静态变量的范式

auto& ClassMap() { static auto _ClassMap = []() { map _ClassMap; struct { decltype(_ClassMap)& map; template void registry() { map.insert(make_pair(type_index(typeid(U)), type_index(typeid(V

2017-01-25 23:19:21 231

原创 auto真是太好用了!!

map, CollisionFunc> _ColMap{  {{type_index(typeid(Asteroid)),type_index(typeid(Asteroid)) }, [](auto,auto) {}}  }; 真的是一个完美的占位符。凡是你知道该怎么写但是懒得写的地方,都可以用auto。

2017-01-25 21:43:31 326

原创 如何很燃地解决问题

一个好的问题,让你仿佛是在和一位强劲的对手较量。仿照日漫里的战斗,大概会有以下几个过程: 一、拿到问题,发散性思维,各个思路都想一想。去除一些很明显的错误答案, 确定思路的大方向。到这时可以说“真正的战斗现在才开始。” ほんとの戦いは今からだ。 二、沿着这个思路进行一些探索和研究,发现和产生一些新的更具体、细节的问题。 你准备仔细全面地来解决这些问题。这些可以说:“终于要拿出真本

2017-01-13 11:00:51 284

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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