C++
文章平均质量分 74
laibach0304
这个作者很懒,什么都没留下…
展开
-
boost.pool源码整理和使用说明
Source#ifndef __KIMI_BOOST_POOL#define __KIMI_BOOST_POOL#pragma once // std::less, std::less_equal, std::greater#include // new[], delete[], std::nothrow#include // std::size_t, s原创 2007-07-22 13:49:00 · 1585 阅读 · 0 评论 -
boost.BOOST_STATIC_ASSERT源码整理和使用说明
Source#include #include //namespace kimi_boost{ //这个模板类只有声明,没有定义 //注意:这里没有{} //所以如果定义这个类型的对象将会失败 template bool> struct STATIC_ASSERTION_FAILURE2;原创 2007-08-24 22:49:00 · 744 阅读 · 0 评论 -
我看国内的C++教育以及我的建议
学习C++,是因为效率。学习C++,是为了对底层更牢固的控制力。学习C++,是因为这里才存在真正的泛型。。。。。。。 可是我,有点郁闷,学习C++,是为了学习MFC。MFC衰落了,但是C++并没有,C++0x将是C++历史上的第二次革命,boost组件的加入必将把generic programming和template meta programming推崇到极致,程序员不必把它原创 2007-08-28 11:26:00 · 1224 阅读 · 1 评论 -
C++ Meta Programming 和 Boost MPL(1)
本系列全部转载自kuibyshev.bokee.com1. 引论C++的发展史是一个不断吸收程序设计领域精华和不断积累充实语言特性的过程。它的创造者Stroustrup在这门新的编程语言草创之初就定下了几个基本的目标,二十年过去了,至今这些目标仍然是C++继续发展的指南针。其中他明确指出,这种语言不应强迫程序员使用单一程序设计形式[20];就是说C++语言应该是一种“多种花样”的转载 2007-08-30 23:01:00 · 1343 阅读 · 1 评论 -
C++ Meta Programming 和 Boost MPL(2)
本系列全部转载自kuibyshev.bokee.com 1. 模板元编程的原理1.1. 函数式编程1.1.1. 函数式编程的概念从上面的例子可以看出,由于模板元编程借助的是C++模板的特化能力,使它的设计方法迥异于普通的C++编程习惯。比如我们不能够在元函数中使用变量,编译期显然只可能接受静态定义的常量,也就因此,我们不能够使用传统意义上的循环;要实现任何分支选择,转载 2007-08-30 23:02:00 · 1227 阅读 · 0 评论 -
C++ Meta Programming 和 Boost MPL(3)
本系列全部转载自kuibyshev.bokee.com1. 模板元编程的基本用途1.1. 数值计算上文提及的所有关于模板元编程的例子都是在编译时的数值计算,这是模板元编程的最简单直接的使用方法。数值计算主要利用模板的特化和局部特化能力进行递归演算,模板类被视为元函数,利用类中的一个静态常量保存结果。由于C++模板对非类型的参数有限制,一般只有整型和布尔型可以参加运算。元转载 2007-08-30 23:06:00 · 2560 阅读 · 0 评论 -
C++ Meta Programming 和 Boost MPL(4)
本系列全部转载自kuibyshev.bokee.com1. Boost中的MPL库分析MPL是由David Abrahams和Aleksey Gurtovoy为方便模板元编程而开发的库,2003年被Boost吸纳为其中的一员,此后又历经一些大幅度修改,目前已经相当完善,其最新版本于2004年11月发布。MPL的出现是C++模板元编程发展中的一大创举,它提供了一个通用、高层次的编程转载 2007-08-30 23:07:00 · 1428 阅读 · 0 评论 -
为什么C++
为什么C++(感谢waterwalk翻译) 刘未鹏(pongba) /文waterwalk /译C++的罗浮宫(http://blog.csdn.net/pongba) 首先非常感谢waterwalk的辛勤翻译:-) waterwalk把翻译回贴在原文的下面了,为了方便阅读我提取出来编辑以后重发一个帖子。这篇文章原本是想对最近C/C++争论系统的整理一下一些思考的,但由于一转载 2007-09-18 00:16:00 · 673 阅读 · 2 评论 -
泛型归并排序
#define SENTINEL_CARD (-1) #include #include #include #include #include template class bidirectional_iterator, template class> class less_equal_compare = std::less原创 2007-09-18 00:23:00 · 584 阅读 · 0 评论 -
泛型插入排序
#pragma once#include #include template class bidirectional_iterator, templateclass> class greater_compare = std::greater > class insertion_sort_functor {原创 2007-09-18 00:25:00 · 656 阅读 · 0 评论 -
boost.array源码整理和使用说明
Source#include #include #include // Handles broken standard libraries better than #include #include #include // FIXES for broken compilers#include namespace kimi_boost原创 2007-08-24 22:45:00 · 554 阅读 · 0 评论 -
boost.any源码整理和使用说明
Source#include #include #include "boost/config.hpp"#include #include #include #include namespace kimi_boost{ class any { templatetypename ValueType>原创 2007-08-24 22:44:00 · 877 阅读 · 0 评论 -
泛型快速排序
Source#ifndef kimi_quicksort#define kimi_quicksort #include #include #include namespace kimi_boost{ using namespace std; templateclass RandomAccessIterator>void quickso原创 2007-08-28 03:20:00 · 793 阅读 · 0 评论 -
一个STL风格的动态二维数组
#ifndef __KIMI_BOOST_ARRAY2#define __KIMI_BOOST_ARRAY2#pragma once#include //size_t#include //exception#include //random_access_iterator_tag,reverse_iteratornamespace kimi_boost{template class a原创 2007-07-22 18:05:00 · 1246 阅读 · 2 评论 -
你应当如何学习C++(以及编程)
你应当如何学习C++(以及编程)(rev#1) By 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba) Javascript是世界上最受误解的语言,其实C++何尝不是。坊间流传的错误的C++学习方法一抓就是一大把。我自己在学习C++的过程中也走了许多弯路,浪费了不少时间。 为什么会存在这么多错误认识?原因主要有三个,一是C+转载 2007-08-05 10:17:00 · 773 阅读 · 2 评论 -
没有完美的strcpy
strcpy的几个焦点集中在一下几点:是否效率优先NULL指针处理重叠(源和目的相同是其一种特殊情况)处理字符串结束字符字符类型效率优先版本extern "C" char * unchecked_strcpy(char *d,const char *s ){ //the simplest and most efficient way assert(d原创 2007-08-13 20:12:00 · 630 阅读 · 0 评论 -
main函数的三种参数形式
main函数的返回值可以是任意类型,包括void。main函数的参数列表可以是一下三种形式:main(void)main(int argc, char* argv[])main(int argc, char* argv[], char* envp[])envp数组用来接收系统的环境变量原创 2007-08-23 23:15:00 · 1832 阅读 · 0 评论 -
boost.shared_ptr源码整理和使用说明
Source#pragma once //shared_ptr的简单实现版本//基于引用记数的智能指针//它可以和stl容器完美的配合namespace kimi_boost{ templateclass T> class shared_ptr{public: typedef T element_type; typedef T v原创 2007-08-24 22:51:00 · 1255 阅读 · 0 评论 -
编译期判断类的继承性
介绍一个雕虫小技:编译期判断类的继承性。具体来说就是类型U是否继承自类型T。该技术的灵感和源头来自Andrei Alexandrescue的《Modern C++ Design》。原书中描述的此技术有一个小小的bug。源代码template class T , class U>class __conversion{ static char test(U); stat原创 2007-08-24 23:00:00 · 850 阅读 · 0 评论 -
boost.type_traits源码整理和使用说明(1)
IntroductionThe Boost type-traits library contains a set of very specific traits classes, each of which encapsulate a single trait from the C++ type system; for example, is a type a pointer or a ref原创 2007-08-28 01:35:00 · 1056 阅读 · 0 评论 -
智能指针的标准之争:Boost vs. Loki
智能指针的标准之争:Boost vs. Loki撰文/马维达 weida@flyingdonkey.com2001 年10 月和2002 年4 月,在美国的华盛顿和荷兰的安的列斯群岛上分别召开了两次C++标准会议。会议的内容之一是对一项新的C++特性提议——智能指针(Smart Pointer)——进行讨论。本文将对可能成为C++新标准的两种智能指针方案(Boost vs. Lok转载 2007-08-28 12:28:00 · 1122 阅读 · 2 评论 -
boost.lexical_cast源码整理和使用说明
Source#include #include #include //#include #include #include #include #include //namespace kimi_boost{ // exception used to indicate runtime lexical_cast failure原创 2007-08-24 22:55:00 · 954 阅读 · 0 评论 -
boost.tuple源码整理和使用说明
IntroductionA tuple (or n-tuple) is a fixed size collection of elements. Pairs, triples, quadruples etc. are tuples. In a programming language, a tuple is a data object containing other objects as e原创 2007-10-07 23:13:00 · 772 阅读 · 0 评论