编程语言
文章平均质量分 79
dounking
兴趣爱好广泛,技术杂而不精
展开
-
向左走,向右走?
注意: 这里的向左向右不是那部电影 ,这次要讲的是前两天碰到的一个关于C++中左值、右值的问题,请看下面这段代码:#include "stdafx.h"#include #include using namespace std;class T{public: T& GetRef() const { return *this; };};原创 2006-02-26 17:08:00 · 1189 阅读 · 0 评论 -
胡思乱想--关于cpp中非成员函数的扩展
今天从图书馆借了本Herb Sutter的《Exceptional C++ Style》,Herb在这本书的最后专门整了个专题来讨论std::string的设计问题,其中的核心内容就是讨论给std::string瘦身,更进一步,Herb提出了他的观点--“为了避免巨型(monolithic)设计,尽可能编写非成员非友元形式的函数”。Herb认为如果一个class总是试图通过成员函数而不是非成员原创 2006-04-28 22:15:00 · 1171 阅读 · 0 评论 -
小技巧:C++限制一个方法只能在某个类当中被调用
一个类A有方法func1,有时候我们希望这个func1只在某个特定的类B中被调用。以下是一种实现方法:templateclass T>class FriendAccess...{ friend typename T; // error if write class keyword instead of typename here, but okay if typename is ign原创 2007-05-24 23:48:00 · 2264 阅读 · 0 评论 -
函数式编程
最近在看一些关于js方面的东东,除了些Ajax的基本应用,还了解了些函数式编程(FP)的东东。虽然以前也玩过几天lisp的,不过因为当时完全对FP的东西没有概念,压根就不知道原来这是List那一族最大的特性之一(另外我知道的还有个是GC,orz...),光注意那些诡异的“表”去了。总结一下,传统上认为FP的两大特点一个是高阶抽象,一个是惰性求值。这两个词听起来都有点学术化,好像是在搞数学研究。原创 2008-04-12 22:44:00 · 683 阅读 · 0 评论 -
An interesting difference between C# and C++/CLI
Considering code below:// Component code:class B{ public int Val { get {return 1;} }}class D : B{ public new int Val { set {value;} }}// Client code:// C#D d =原创 2008-06-07 01:22:00 · 935 阅读 · 0 评论 -
将N层集合对象自动转化为对应的.NET泛型对象(C++)
昨天别人碰到的问题,晚上回来想了一下给出了一个用模板进行类型推导的解决方案。问题本身需求很清楚,就是需要写一个Util函数,将C++里面的那些模板(template)集合对象自动转换成.NET里面的泛型(Generic)集合对象,比如将vector转化成List^。因为类型(Type)不定,所以用模板来进行转化是不二的选择。问题的难点在于这些集合类还可以是嵌套类型,也就是说集合里面装的还是集合原创 2008-08-29 20:39:00 · 1004 阅读 · 2 评论 -
A bad API design in .NET
ArgumentNullException constructor is really a bad API design sample. First let us review the constructor definition of ArgumentException and ArgumentNullException(From MSDN): public ArgumentExceptio原创 2008-06-15 21:29:00 · 674 阅读 · 0 评论 -
Erlang还是蛮有趣的
最近抽时间看了些Erlang的东西,蛮有趣,纯正的函数式编程,进程/消息的编程模型。当然,我最关心的的还是隐藏在语言设计背后关于构建健壮的系统基本哲学。 函数式编程这个东东已经算不上新鲜了,本来也不新鲜,Lisp里面早就有了。Erlang看上去是很纯正的FP语言,looks good!不过我个人对FP一直有点担心的就是这个东西离机器模型实在是太远,很多操作看上去倒是很美很直观外加简洁,比如原创 2009-02-21 01:11:00 · 1915 阅读 · 0 评论