C++的拟编译期多态/拟动态绑定技术

今天介绍的是一个足够简单但是又很神奇的技术,叫做拟编译期多态Simulated Compile-time Polymorphism,微软的ATL里面大量使用了这样的技术,叫做拟动态绑定Simulated Dynamic Binding,这种技术最早被称为奇异递归模板模式Curiously Recurring Template Pattern.

首先我们来看一份足够简单的代码:

template <typename T>
struct RecursiveBoltIn
{
	void DoIt()
	{
		static_cast<T*>(this)->DoSomething();
	}
};

Read more

SpinelTweet 0.4 发布

SpinelTweet 为以前的vTweet.

0.4版本终于发布,目前版本依然以加新功能为主.

What’s new:

1.TweetDetails页面现在可以将Tweet的用户名,链接解析出来并且着色标记,均可单击链接到相应页面(正则表达式解析tweet)!

2.Main页面的timeline,mentions,messages,favorites四个页面现在均可以下拉获取到更多早前内容,不再局限于20条tweet数量.

3.Tweet的Create Date显示规范化.

SpinelTweet是什么?

这是唯一一款支援twip api proxy的Windows Phone平台的Twitter客户端,目前还在完善中,不定期释放出测试版本.

Read more

C++ 对数组访问的offset[pointer]奇葩语法和其用处

对于C++的数组来说,常见的访问形式是array[offset]形式,比如你可以使用arrary[0]来访问第一个元素,array[1]来访问第二个元素等等。

但是依然有着这样的鲜为人知的语法:你可以使用offset[array]的形式来访问数组!语义和arrary[offset]相同。

也就是说,0[array]是合法的,她访问了数组array的第一个元素,1[array]以此类推。

这样的语法看起来在绝大部分时间里毫无用处,但是极少数情况也有她的作用。比如我们可以利用这一特性来制作一个约束,可以约束其传入的类型必须为原生指针类型。并且可以在编译期就能查出错误。

template<typename T>

struct must_be_subscriptable_as_decayable_pointer
{
	static void constraints(T const &T_is_not_decay_subscriptable)
	{
		sizeof(0[T_is_not_decay_subscriptable]);
	}
};

Read more

C++:基本数据类型中,由型别不同而导致引用定义时的区别

在C++的基本类型的大小并不是确定的,在不同平台有着不同的大小。因为C++标准中并没有规定这一点,而是由编译器决定。

让我们来看一个由基本类型大小不同而导致的一个很隐晦的问题。

代码1:

int main()
{
	int l = 2;
	int const &s = l;

	l = 0;

	printf("%i,%i",l,s);

	return 0;
}

很直观的,这里输出是:0,0;

但是我们来看下面的代码,改动只是一点点。

Read more

新野兽派:陈凯歌的 搜索

对于一个体制内的导演,能够有如此的故事表达还是非常惊讶的,故事对于现在浮躁而动荡的网路和人际社会进行了强烈的讽刺和批判而让人思考,也是对现实社会的嘲讽。是从姜文的让子弹飞之后,又一部能够达到如此思考的华语电影。但故事一流,剪辑二流,灯光三流,场面调度设计和镜头设计四流的电影。

当然,编剧只是电影创作中一个较小的工作环节之一,非常遗憾的是,这部电影有着非常非常糟糕的新野兽派风格的镜头设计,还有着非常平庸的场面设计。这让这部电影达不到一流甚至二流中档的电影级别。她有着Crash(2004)一个级别的故事,却有着三流电影的素质。

所幸的陈凯歌还是有着一些基本功力的,尽管除了故事之外一团糟,他依靠着还能接受的剪辑和配乐将本片给人的主观感觉蛮不错。但是还需要各种努力,以免像这样明显的新野兽派风格再次出现,这是幼稚的表现。

没有足够知识储备就开始所谓创新是让人发笑和胡乱来的。

Read more

希区柯克的群鸟 The Birds

群鸟(希区柯克,1963),电影本身是没有遵从经典好莱坞叙事手法,这部电影会像他的另外一部经典电影 精神病患者 一样会让现代观众感觉到莫名其妙。希区柯克看的这几部电影剧情都非常简单,不像现代优秀电影有着各种神乎其神的剧情,更像是希区柯克对于电影掌控的个人技 术展示。

群鸟本身大部分情况下都没有遵从连续性剪辑,取而代之的是大量古典剪辑手法运用,尤其著名的是那段加油站爆炸的库里肖夫效应展 示。希区柯克的电影表现手法对着现代电影有着启蒙性的意义。 因此,再以现代普通观众的眼光看希区柯克的电影,恐怕大部分电影都无法满足现代观众的胃口,就比如说群鸟,没有事件原因,也没有解决方法,故事线也相当的 单一。而 精神病患者,则中间的主角转换部分恐怕更是会让现代观众大跌眼镜。而另外一部经典电影后窗的故事线也非常单一。

Read more

return top