Google
 

2007-03-13

新问题

  现在的新问题是,编译器不能编译显式特化泛化类的成员函数模板!从BDS的联机帮助上看到,这是编译器显式禁止的。郁闷!也就是说,LuaTinker中的代码,是不能直接用上来的!唉,真想不用BDS了,用VC不就行了。可是用VC的话,我只会用SDK,画界面真的太费时间了!其实还有个办法,就是好好学一下C++的模板元编程(template meta programming),再自己写一个好用的C++ Wrapper for Lua,呵呵。看几本书:《Modern C++ Design》、《C++ Templates》、《C++ Template metaprogramming》;研究几个源代码:Boost、Lua、LuaTinker、LuaBind。
  有点多哟!

2007-03-12

让Borland编译器支持返回值为模板参数的自动推导

  昨天说到,用Borland最新的C++编译器在编译模板的时候,对于成员函数模板的情况,如果只是函数返回值是模板参数时,是不会自动选择对应的特化版本的,而一直使用泛化版本,而VC至少8.0版是能自动选择的,记得当时用7.1写TclSuck时也用到了这样的特性,所以应该也是直接支持的。
  不过,现在发现了让Borland编译器也能自动选择的作法,其实很简单,只要在成员模板声明和定义的地方加些东西就可以了,仔细看下面的代码,比较和昨天的代码的不同点,呵呵:

class kk
{
public:
template<typename T>
static T test()
{
T t;
cout << "general edition" <<endl;
}
template<>
static int test<int>()
{
int i;
cout << "int edition" <<endl;
}

template<typename T>
T test2()
{
T t;
cout << "2 general edition" <<endl;
}
template<>
int test2<int>()
{
int i;
cout << "2 int edition" <<endl;
}

template<typename T>
void test3(T t)
{
cout << "3 general edition" <<endl;
}
template<>
void test3(int t)
{
cout << "3 int edition" << endl;
}
};
  很简单吧,只是加了对尖括号和特化类型说明!这下可以继续了。
  顺便八卦一下,csdn真的不行了,连个blog也做不稳定就先不说了,昨天把这个问题挂上去,挂了一天一夜也没人问津,可见社区的整体技术水平,或者是技术氛围已经远远不如以前了。真要钻研技术的,去国外的技术社区比较有气氛。不过国外的用论坛的比较少,较多的是新闻组和邮件列表,有点不习惯。

2007-03-11

Borland的编译器不支持成员函数模板特化

  用的是BDS2006,看版本号是5.82版的编译器了,相比以前即BCB6里带的编译器,虽然没有评估过有多少改进,明显的只是编译速度较之以前大大提高了。今天为了LuaSuck,一边改LuaTinker一边编译,发现它居然对成员函数模板的特化视而不见!
  用的BDS2006里的编译器,这样试一下:

class kk
{
public:
template<typename T>

static T test()
{
T t;
cout << "general edition" <<endl;
}
template<>
static int test()
{
int i;
cout << "int edition" <<endl;
}

template<typename T>

T test2()
{
T t;
cout << "2 general edition" <<endl;
}
template<>
int test2()
{
int i;
cout << "2 int edition" <<endl;
}

template<typename T>

void test3(T t)
{
cout << "3 general edition" <<endl;
}
template<>
void test3(int t)
{
cout << "3 int edition" << endl;
}
};


int main(int argc, char* argv[])
{
kk k;
k.test<int>();
kk::test<int>();
k.test2<int>();
k.test3<int>(2);
k.test3<>(4);

return 0;
}


输出结果是这样的:
general edition
general edition
2 general edition
3 int edition
3 int edition

  由此可见,如果模板参数是用于作为成员函数的参数类型的,是可以特化的,如果是作为函数返回值类型的,则总是调用泛化版本。但是VC8.0里就是这样的:
int edition
int edition
2 int edition
3 int edition
3 int edition

  感觉好像VC中的作法是对的,但是没仔细深究过,很让我觉得头痛,我就需要这样的特性,它偏偏不支持!有时候想想,还真的需要好好研究一下C++的标准,呵呵。

爱情呼叫转移

  昨晚回来后,连夜从VeryCD上下了《爱情呼叫转移》,并看完。虽然xcc说很搞笑,但我看的时候,却不怎么觉得,也许是因为从去年那段时间以来一直遗留下来的忧郁干扰的吧。忧郁于我来说,是太过容易的事情了。
  片子让人感觉有点拼凑的嫌疑,其实像是讲述一个个的小故事,可硬要串在一起作为一部完整连续的影片。不过整体教育意义上的表现还是有点可取的,爱一个人就要爱她的全部,没有深入了解,就不要武断地判决一个人。

2007-03-10

今天教授请客

  大吃两顿。本来是只想吃一顿就够了的,结果中午吃完是2点半了,我跟雨烟去修手机,一直弄到快5点,打电话问他们在干吗,说是在KBox里,还大概有1个小时,于是就过去了,后来又加了一个小时。出来就已经是7点了,8个人磨叽了一阵,最后我和雨烟、疯丫头、教授一起去吃了顿肠粉和粥,味道还真不错,价格也不是很贵,4个人才吃了50块钱。出来后,走到石头记,刚好雨烟说要买银针,就进去看了。疯丫头看到一块绿色的石头很喜欢的样子,可惜她这个家伙没钱了(居然穷到这份上,也不容易啊),就狠不下心来买,我就随口说说买了买了,结果营业员当真了,晕,于是就假戏真作了,疯丫头和雨烟当然不肯让我买单。后来雨烟硬是塞给我200块钱。呼呼!
  下周就我生日啦!我来请了。
  疯丫头说她要下下周请大家,说是生日,其实是加上她转到其它组去的告别会吧,呵呵。

豆豆鸡煲味道不错

  xcc叫我一起去吃饭,下了班就过去梅林,说去吃豆豆鸡煲吧。那里的生意还真的旺的,很多人,差点要等一会儿才有座儿的。三个人点了个鸡煲,10+2串羊肉串,12+1个生蠔,4瓶啤酒,还是多开心的。突然觉得要是能一直这样生活下去也挺不错的,赚点钱然后自己花。可是爸妈终归是要老的,人终归是要结婚的。说起来,我们原来那个老大,跟一个才认识18个月的女孩结婚了,动作真是快呀,不过他也是快30的人了,是差不多时候了,而那女的,跟我差不多大。现在总是认为谈恋爱不能谈太久,太久了就很可能结不成婚了,像他们这种才是最稳当的做法,认识了,然后谈一小阵子,然后结婚。不过像他们这样的,生活基本上也就是固定下来了,不出什么大的意外的话,大概一辈子都像现在这个样子了。而我的漂泊感还是很重,归宿感还没有找到。爱情这种东西,也许是只有在年轻的时候体会一下就够了,以后的,照中国人的常规做法是,在责任心的基础上,建立起也许在欧美人看来质量并不高的婚姻。爱情不能当饭吃,以后是为了生活,而不是像电视上那样死去活来,普通人是经不起那样的折腾的。

2007-03-08

要被释放掉了

  今天下午正在电脑上看小说,上面的大老大拍拍我的肩膀,吓了我一跳。叫我出去谈一下,我就已经意识到是这个事情了。果然最后还是如我以前估计的那样,我被释放到系统技术组去了,说得倒是挺好听的,还说是为了发挥我的专长,那边的老大也很期盼,而且为了能让我去,还特地释放了一个原本在那个组的人到其它地方去了。晕倒,我这样是不是罪孽啊!其实我真的对去那个组不是非常感兴趣,经过在公司的这么一年半时间的磨合,我已经如现在的尹老大说的那样,放到哪都是一块砖了。而且像在现在这个组里,还能学到流程方面的东西,而这东西是我觉得在公司里最值得学习的了。去了那个系统技术组就应该在这方面弱化了,照尹老大的说法,那里是偏开发的。可偏偏还是测试部的旗下的,所以不伦不类的,说不定再给我分些奇怪无聊的事情,就真的郁闷完了。再加上,我真的不认为我写代码方面有什么特长,只是刚好这边的同事们大多在这方面没有研究,然后就看起来好像我很厉害似的,真是心虚呀!

2007-03-06

堕落了

  这几天真的堕落了。一直没有动手,就在看漫画,消磨时间,浪费青春啊!

2007-03-05

烦啊

  唉,突然想起一些很无聊很无趣的事,却为这样的事情烦恼啊!怎么会这样失败呢!
  昨天是元宵节,去雨烟家吃饭了,还有教授和猫猫,上午就去了,11点开始出去买菜,一直到下午2点才买回来,呵呵。下午打了一会儿牌,5点的时候雨烟开始弄,我只是帮忙把虾皮剥掉,其它的什么都没做。因为比较困。五个人吃了很多,吃撑死了。说起来略微有点伤感,都说以后可能很少有这样的机会了,因为各个都嚷嚷着要跳槽,雨烟也说了很久了,我也酝酿了很久了,只是一直没做好准备工作。连猫猫都说要走,这个倒是有点没想到,不过她也可能只是凑热闹吵吵的吧。
  烦啊!这样的日子什么时候才是个尽头啊!
  我真的是个很小心眼的人啊!

2007-03-02

小丫头为工作的事烦

  我感到很难过。上班的时候我打电话过去,她说都是被我害的。虽然有点开玩笑的成分,但这个也是空穴来风啊!下班后还突然发个短信来说其实没这么严重,只是没事了发下牢骚。我其实已经从那天起,一直背负着愧疚和歉意,今天只不过又加重了一点而已。唉!