[C++技巧:OpenCASCADE智能指针的使用]学习OCC的第一步是要了解其类的结构及组成,比如AIS_InteractiveObject类用来表示一个交互 式图形对象,如果进一步了解会发现其继承关系是:MMgt_TShared->Standard_Transient->P...+阅读
stl_config.h
由于不同的编译环境对标准C++的支持不完全相同,出于移植性的考虑,SGI STL定义了这个文件。它通过条件编译针对不同的编译器作了部分常数设定,对编译器的设定如下:
1) 如果没有定义bool,true,false,定义 __STL_NEED_BOOL。
2) 如果不支持drand48(采用了48bit计算,产生双精度的伪随机数),定义 __STL_NO_DRAND48。
3) 如果不支持类模板的静态成员,定义 __STL_STATIC_TEMPLATE_MEMBER_BUG。
4) 如果不支持关键字typename,定义typename为一个空宏(null macro)。
5) 如果支持类模板局部特殊化(partial specialization of class templates),定义 __STL_CLASS_PARTIAL_SPECIALIZATION。
6) 如果支持函数模板局部特殊化(partial specialization of function templates),定义 Defines __STL_FUNCTION_TMPL_PARTIAL_ORDER。
7) 如果函数模板可以指明参数类型,定义 __STL_EXPLICIT_FUNCTION_TMPL_ARGS(SGI STL中未使用)。
8) 如果类中可定义函数模板为成员,定义 __STL_MEMBER_TEMPLATES。
9) 如果不支持关键字explicit,定义explicit为为一个空宏。
10) 如果不能根据前一个模板参数设定后一个模板参数,定义 __STL_LIMITED_DEFAULT_TEMPLATES。
11) 如果对无类型模板参数(non-type template parameters)执行函数模板的参数推导出错,定义 __STL_NON_TYPE_TMPL_PARAM_BUG。
12) 如果不支持iterators的->操作符,定义 __SGI_STL_NO_ARROW_OPERATOR。
13) 如果支持异常处理(exceptions),定义 __STL_USE_EXCEPTIONS。
14) 如果把STL放在一个namespace中,定义 __STL_USE_NAMESPACES。
15) 如果使用SGI编译,没有选择pthreads或其他threads,定义 __STL_SGI_THREADS。
16) 如果使用WIN32的多线程模式(multithreaded mode)编译,定义 __STL_WIN32THREADS。
17) 适当定义namespace相关宏(__STD, __STL_BEGIN_NAMESPACE, 等)。
18) 适当定义exception相关宏 (__STL_TRY, __STL_UNWIND, 等)。
19) 如果没有定义__STL_ASSERTIONS,定义__stl_assert为一个空宏。
20) 如果定义__STL_EXPLICIT_FUNCTION_IMPL_ARGS,定义__STL_NULL_TMPL_ARGS为,否则为空宏。
21) 如果定义__STL_CLASS_PARTIAL_SPECIALIZATION,定义__STL_TEMPLATE_NULL为template ,否则为空宏。
以下为关联文档:
VC++字体通用的类#include "stdafx.h" #include "font.h" COleFont properties CString COleFont::GetName() { CString result; GetProperty(0x0, VT_BSTR, (void*) return result; } void...
C++技巧:emacs完美的C++的自动补全1,CVS cedet的最新代码,1.04代码补全很慢。 cvs -z3 -d:pserver:anonymous#cedet.cvs.sourcefe.:/cvsroot/cedet co -P cedet 2,命令行运行 touch `find -name "Makefile"` (注...
解决VC++程序国际化的类,解决乱码问题#include "stdafx.h" #include "global.hpp" Deion: generate an error message int Error(long err, char *fmt, ...) { static char buf[256]; static char buf2[256]; va...
使用VC++6关闭指定窗口标题的程序常常听说有病毒关闭杀毒软件,是枚举窗口标题来实现的,那么内幕是什么呢? 其实只需要数10行代码就可以了。 VC++6.0建立Win32 APPlication,复制下面的代码... #include BOOL CALL...
二级考试C++基础:volatile的使用方法volatile的本意是一般有两种说法--1.“暂态的”;2.“易变的”。 其实Volatile是由于编译器优化所造成的一个Bug而引入的关键字。 int a = 10; int b = a; int c = a; 理论上...
C++中使用断点写调试方法C/C++ code: f9 --- 设置/取消断点 f10 --- 单步执行 f11 --- 比f10的步幅小,f10在函数的调用时,直接跳过,在f11下,会进入函数体! f5 --- 执行到下一个断点! 了解调试,首先要知道"...
c++读写剪贴板代码代码如下: 写: if(OpenClipboard()) { CString str; HANDLE hClip; char *pBuf; EmptyClipboard(); str="879789789"; hClip=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);...
c++数据类型及复杂声明推演数据类型 c++程序员已经知道c语言有五种数据类型:void,int,float,double和char: 类型 描述 void 无数据类型 int 整数类型 float 浮点数 double 双精度浮点数 char 字符型 c+...
C++基础:有趣的#define的一个实例看了一下google CoverStory的代码,有一个地方很有意思: These are the various document types used by CoverStory. Included in both Obj-C and plist sources. A little ma...