分类 ‘C++’ 中的文章

如果要拟定一份代码规范,哪些内容应该列入?

如题,大致看了下网上能找到的一些规范,觉得大体有这么三个方面吧,一个是排版方面的,一个是命名方面的,一个是书写逻辑方面的。

排版方面的大概有,如何缩进,如何使用空格、换行,等等。命名方面的包括变量、函数、类、文件的取名等等。书写逻辑方面的就比较多了,可能包括:
是否全面使用异常、出错处理资源清理如何组[......]

更多…

如何写 执行耗时任务的、可随时立即退出的函数 呢?

如题。

稍微解释下,因为有可能有人会误会:放新线程里面去不就可以了?这没有解决问题。如此的话,你那个线程函数怎么写?或者线程函数里调用的某个任务函数怎么写?总之,多线程虽然总是出现在这些问题的解决方案中,但不是多线程解决了这个问题。嗯……不知道说清楚了没?

目前我心里的答案只有这一种模式:

bool[......]

更多…

一个简单的 Tuple 实现

标题中说的 Tuple 是指类似 boost::tuple 这样的设施。

很多时候我们需要返回/传入一堆参数,所以不得不每次定义一些为了数据传输的结构。Tuple 就是用来解决这一问题的,它提供即时构造一个这样的结构体的功能。而所付出的代价是,丧失各个成员的明确含义,只留下成员的序号。

两个元素的[......]

更多…

如何实现一个支持不同类型的 max/min 函数?

有个需求,能否做到实现一个类似这样的函数:

template <typename T1, typename T2>
XXX Min(T1 t1, T2 t2)
{
    return (t1 < t2 ? t1 : t2);
}

其中 XXX 是我们要推导[......]

更多…

觉得 Loki::ScopeGuard 似乎不该在它自己里面 try … catch …

ScopeGuard 只是帮我们调用一个函数而已,至于这个函数是否有异常出来,它不该悄悄地把它吞了,而应该还我们本来面目,不知道是不是?可是为什么几乎所有介绍 ScopeGuard 的文章都说这 try … catch … 用得好呢?