分类 ‘C++’ 中的文章

一个简单的 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 … 用得好呢?

一个好玩的玩意儿:VS 的 autoexp.txt

嗯,写篇文章的目的是为了把我最新(现在是次新)的那篇文章给刷下去——我不想每次看见它了。

不知大家有没有发现,当使用 VS 来调试代码的时候,那些 STL 容器的信息会以比较看得懂的方式显示出来:

image

 

而我们自己写的,它只能按照数据成员来显示,如果数据结构稍微复杂点,看这些直接显示的内容[......]

更多…

C++ 下 Function 对象的实现(下)

目录:

C++ 下 Function 对象的实现(上)
C++ 下 Function 对象的实现(下)

上篇中,我们实现了一个支持 R () 型函数的 Function。补充说明一下,在我们对成员函数的支持中,我们是这样定义的:

template <typename R, typename T&[......]

更多…