如题,大致看了下网上能找到的一些规范,觉得大体有这么三个方面吧,一个是排版方面的,一个是命名方面的,一个是书写逻辑方面的。
排版方面的大概有,如何缩进,如何使用空格、换行,等等。命名方面的包括变量、函数、类、文件的取名等等。书写逻辑方面的就比较多了,可能包括:
是否全面使用异常、出错处理资源清理如何组[......]
如题,大致看了下网上能找到的一些规范,觉得大体有这么三个方面吧,一个是排版方面的,一个是命名方面的,一个是书写逻辑方面的。
排版方面的大概有,如何缩进,如何使用空格、换行,等等。命名方面的包括变量、函数、类、文件的取名等等。书写逻辑方面的就比较多了,可能包括:
是否全面使用异常、出错处理资源清理如何组[......]
如题。
稍微解释下,因为有可能有人会误会:放新线程里面去不就可以了?这没有解决问题。如此的话,你那个线程函数怎么写?或者线程函数里调用的某个任务函数怎么写?总之,多线程虽然总是出现在这些问题的解决方案中,但不是多线程解决了这个问题。嗯……不知道说清楚了没?
目前我心里的答案只有这一种模式:
bool[......]
标题中说的 Tuple 是指类似 boost::tuple 这样的设施。
很多时候我们需要返回/传入一堆参数,所以不得不每次定义一些为了数据传输的结构。Tuple 就是用来解决这一问题的,它提供即时构造一个这样的结构体的功能。而所付出的代价是,丧失各个成员的明确含义,只留下成员的序号。
两个元素的[......]
有个需求,能否做到实现一个类似这样的函数:
template <typename T1, typename T2>
XXX Min(T1 t1, T2 t2)
{
return (t1 < t2 ? t1 : t2);
}
其中 XXX 是我们要推导[......]
ScopeGuard 只是帮我们调用一个函数而已,至于这个函数是否有异常出来,它不该悄悄地把它吞了,而应该还我们本来面目,不知道是不是?可是为什么几乎所有介绍 ScopeGuard 的文章都说这 try … catch … 用得好呢?