⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compiledb.txt

📁 Think in C++ 第二版源码
💻 TXT
字号:
#: :CompileDB.txt

// From Thinking in C++, 2nd Edition

// Available at http://www.BruceEckel.com

// (c) Bruce Eckel 1999

// Copyright notice in Copyright.txt

# Compiler information listings for Thinking in 

# C++ 2nd Edition By Bruce Eckel. See copyright 

# notice in Copyright.txt.

# This is used by ExtractCode.cpp to generate the

# makefiles for the book, including the command-

# line flags for each vendor's compiler and 

# linker. Following that are the code listings 

# from the book that will not compile for each 

# compiler. The listings are, to the best of my 

# knowledge, correct Standard C++ (According to 

# the Final Draft International Standard). Please

# note that the tests were performed with the 

# most recent compiler that I had at the time, 

# and may have changed since this file was 

# created.

# After ExtractCode.cpp creates the makefiles

# for each chapter subdirectory, you can say 

# "make egcs", for example, and all the programs

# that will successfully compile with egcs will

# be built.

#################################################

# Compiling all files, for a (theoretical) fully-

# conformant compiler. This assumes a typical

# compiler under dos:

{ all }

# Object file name extension in parentheses:

(obj)

# Executable file extension in square brackets:

[exe]

# The leading '&' is for special directives. The

# dos directive means to replace '/' 

# with '\' in all directory paths:

&dos

# The following lines will be inserted directly

# into the makefile (sans the leading '@' sign)

# If your environment variables are set to 

# establish these you won't need to use arguments

# on the make command line to set them:

# CPP: the name of your C++ compiler

# CPPFLAGS: Compilation flags for your compiler

# OFLAG: flag to give the final executable name

#@CPP = yourcompiler

#@CPPFLAGS =

#@OFLAG = -e

@.SUFFIXES : .obj .cpp .c

@.cpp.obj :

@   $(CPP) $(CPPFLAGS) -c $<

@.c.obj :

@   $(CPP) $(CPPFLAGS) -c $<

# Assumes all files will compile

# See later for an example of Unix configuration

#################################################

# Borland C++ Builder 4 -- With Upgrade!!!

# Target name used in makefile:

{ Borland }

# Object file name extension in parentheses:

(obj)

# Executable file extension in square brackets:

[exe]

# The leading '&' is for special directives. The

# dos directive means to replace '/' 

# with '\' in all directory paths:

&dos

# Inserted directly into the makefile (without

# the leading '@' sign):

@# Note: this requires the upgrade from 

@# www.Borland.com for successful compilation!

@CPP = Bcc32

@CPPFLAGS = -w-inl -w-csu -wnak	

@OFLAG = -e

@.SUFFIXES : .obj .cpp .c

@.cpp.obj :

@   $(CPP) $(CPPFLAGS) -c $<

@.c.obj :

@   $(CPP) $(CPPFLAGS) -c $<

# Doesn't support static const 

# array initialization:

C10:StaticArray.cpp 

# Problem with string constructors at run-time:

C17:ICompare.cpp

# Template bug:

C19:ArraySize.cpp

# Not sure:

C20:AssocInserter.cpp

# Bitset is Broken in this compiler's library:

C20:BitSet.cpp

# Standard Library problem:

C21:SearchReplace.cpp

# Function-level try blocks not implemented:

C23:FunctionTryBlock.cpp

# Uses the SGI STL extensions, so it actually 

# isn't supposed to compile with this 

# compiler:

C20:MapVsHashMap.cpp

C21:MemFun4.cpp

C21:Compose2.cpp

#################################################

# Visual C++ 6.0 -- With Service Pack 3!!!

# Target name used in makefile:

{ Microsoft }

# Object file name extension in parentheses:

(obj)

# Executable file extension in square brackets:

[exe]

# The leading '&' is for special directives. The

# dos directive means to replace '/' 

# with '\' in all directory paths:

&dos

# Inserted directly into the makefile (without

# the leading '@' sign):

@# Note: this requires the service Pack 3 from 

@# www.Microsoft.com for successful compilation!

@CPP = cl

@CPPFLAGS = -GX -GR

@OFLAG = -o

@.SUFFIXES : .obj .cpp .c

@.cpp.obj :

@   $(CPP) $(CPPFLAGS) -c $<

@.c.obj :

@   $(CPP) $(CPPFLAGS) -c $<

C02:Incident.cpp

# It can't even handle multiple "for(int i =...:"

# statements in the same scope (a really old

# language feature!):

C02:Intvector.cpp

C03:Assert.cpp

C07:MemTest.cpp

C09:Cpptime.cpp

C12:Comma.cpp

C13:GlobalNew.cpp

# Common problem with namespaces and C libraries:

C17:ICompare.cpp

C18:FileClassTest.cpp

C18:Datagen.cpp

C18:Datascan.cpp

# Can't do template type induction properly:

C19:ArraySize.cpp

# Doesn't know about template-templates:

C19:TemplateTemplate.cpp

C19:applyGromit2.cpp

# Can't do template specializations:

C19:Sorted.cpp

# Can't do explicit template instantiation:

C19:ExplicitInstantiation.cpp

# Missing part of iostreams:

C20:StreamIt.cpp

# Problem with STL:

C20:BasicSequenceOperations.cpp

C20:VectorCoreDump.cpp

C20:DequeConversion.cpp

C20:Stack2.cpp

# Problem with static class initializer:

C20:BankTeller.cpp

# Missing STL functionality:

C20:VectorOfBool.cpp

# STL problem:

C20:AssocInserter.cpp

# Various problems:

C20:WildLifeMonitor.cpp

C20:MultiSet1.cpp

C20:Thesaurus.cpp

# These use the SGI STL extensions, so they 

# actually aren't supposed to compile 

# with this compiler:

C20:MapVsHashMap.cpp

C21:Compose2.cpp

# Namespace problem again, and other issues:

C21:FunctionObjects.cpp

C21:Binder1.cpp

C21:Binder3.cpp

C21:Binder4.cpp

C21:RandGenTest.cpp

C21:MemFun1.cpp

C21:MemFun2.cpp

C21:FindBlanks.cpp

C21:MemFun3.cpp

C21:MemFun4.cpp

C21:FillGenerateTest.cpp

C21:Counting.cpp

C21:Manipulations.cpp

C21:SearchReplace.cpp

C21:Comparison.cpp

C21:Removing.cpp

C21:SortTest.cpp

C21:SortedSearchTest.cpp

C21:MergeTest.cpp

C21:SetOperations.cpp

C21:ForEach.cpp

C21:Transform.cpp

C21:CalcInventory.cpp

C21:TransformNames.cpp

C21:SpecialList.cpp

C21:NumericTest.cpp

# Most compilers don't support this yet:

C23:FunctionTryBlock.cpp

# Lack of support for 'static const' again:

C25:Recycle2.cpp

C26:ExtractCode.cpp

C26:MemTest.cpp

# All these do not compile only becase of the

# lack of support for 'static const'. To make

# them compile, you must substitute the

# 'enum hack' shown in chapter 8:

C08:StringStack.cpp 

C08:Quoter.cpp

C08:Volatile.cpp

C10:StaticArray.cpp 

C11:HowMany2.cpp 

C11:Autocc.cpp 

C11:Pmem2.cpp 

C12:Smartp.cpp 

C12:Iosop.cpp 

C12:Copymem.cpp 

C12:Refcount.cpp 

C12:RefcountTrace.cpp 

C13:MallocClass.cpp 

C13:Framis.cpp 

C13:ArrayNew.cpp 

C14:FName1.cpp 

C14:FName2.cpp 

C16:IStack.cpp 

C16:Stemp.cpp 

C16:Stemp2.cpp 

C16:Stackt.cpp

C23:Cleanup.cpp

C24:Selfrtti.cpp 

C24:Reinterp.cpp

#################################################

# The egcs (Experimental g++ compiler) snapshot 

# under Linux, dated July 18, 1998

{ egcs }

(o)

[]

# The unix directive controls the way some of the

# makefile lines are generated:

&unix

@CPP = g++

@OFLAG = -o

@.SUFFIXES : .o .cpp .c

@.cpp.o :

@   $(CPP) $(CPPFLAGS) -c $<

@.c.o :

@   $(CPP) $(CPPFLAGS) -c $<

# Files that won't compile

# Error in streambuf.h:

C18:Cppcheck.cpp

# Not sure:

C19:applyGromit2.cpp

# Missing the standard library 'at()':

C19:Sorted.cpp

C19:ExplicitInstantiation.cpp

# Problem with the egcs iterator header

C20:StreambufIterator.cpp

C20:RawStorageIterator.cpp

# egcs is missing istreambuf_iterator

C20:WordList2.cpp

C20:TokenizeTest.cpp

C20:TokenIteratorTest.cpp

C20:WordCount.cpp

C20:MultiSetWordCount.cpp

# egcs is missing std::iterator:

C20:Ring.cpp

# egcs is missing char_traits

C17:ICompare.cpp

# egcs vector and deque (at least) are missing

# the "at()" functions:

C20:IndexingVsAt.cpp

# There's a problem with the egcs string class:

C17:Compare2.cpp

# Broken in this compiler's library:

C20:BitSet.cpp

# These are because <sstream> isn't implemented

C18:NumberPhotos.cpp

C19:stringConvTest.cpp

C20:StringVector.cpp

C20:FEditTest.cpp

C20:StringDeque.cpp

C20:VectorOfBool.cpp

C20:WildLifeMonitor.cpp

C21:SortTest.cpp

C21:SortedSearchTest.cpp

C21:Binder4.cpp 

C21:ForEach.cpp

# Problem in parsing PrintSequence.h:

C21:Counting.cpp

C21:Manipulations.cpp

C21:SearchReplace.cpp

C21:Comparison.cpp

C21:Removing.cpp

C21:CalcInventory.cpp

C21:TransformNames.cpp

C21:SpecialList.cpp

C21:NumericTest.cpp

# The end tag is required:

#///:~

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -