📄 compiledb.txt
字号:
#: :CompileDB.txt
// From Thinking in C++, 2nd Edition
// 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 (theoritical) 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 except Java will compile
C25:SingletonPattern.java
C25:BoxObserver.java
C25:RecycleA.java
C25:Trash.java
C25:Aluminum.java
C25:Paper.java
C25:Glass.java
C25:Cardboard.java
C25:ParseTrash.java
C25:Fillable.java
C25:FillableVector.java
C25:RecycleAP.java
C25:RecycleB.java
C25:TypedBinMember.java
C25:DDAluminum.java
C25:DDPaper.java
C25:DDGlass.java
C25:DDCardboard.java
C25:TypedBin.java
C25:DoubleDispatch.java
C25:Visitable.java
C25:VAluminum.java
C25:VPaper.java
C25:VGlass.java
C25:VCardboard.java
C25:Visitor.java
C25:TrashVisitor.java
C25:DynaTrash.java
# See later for an example of unix configuration
#################################################
# A beta compiler, so I can't say what it is:
# Target name used in makefile:
{ Beta1 }
# 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):
@CPP = beta1
@CPPFLAGS = -w-inl -w-csu
@OFLAG = -e
@.SUFFIXES : .obj .cpp .c
@.cpp.obj :
@ $(CPP) $(CPPFLAGS) -c $<
@.c.obj :
@ $(CPP) $(CPPFLAGS) -c $<
# Bitset is Broken in this compiler's library:
C20:BitSet.cpp
# Template specialization is broken:
C16:Special.cpp
# Problem with string constructors:
C18:StringIterators.cpp
# Causes an unresolved external:
C18:ICompare.cpp
# Not sure what the problem is here:
C20:BasicSequenceOperations.cpp
C20:SequencePerformance.cpp
# Problem with vector.cc
C20:VectorCoreDump.cpp
# bitset::bitset(string) missing:
C20:VectorOfBool.cpp
# compiler strangeness:
C20:AssocInserter.cpp
# An extension; HashMap is not in Standard C++:
C20:MapVsHashMap.cpp
# Problem with transform algorithm, or templates:
C21:Transform.cpp
# Another problem with vector.cc
C21:Bicycle.cpp
C21:BikeTest.cpp
# Ambiguous base classes illegal? Seems wrong:
C22:MultipleInheritance1.cpp
C22:MultipleInheritance2.cpp
C22:MultipleInheritance3.cpp
C22:MultipleInheritance4.cpp
#################################################
# The egcs (Experimental g++ compiler) snapshot
# under Linux:
{ 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:
# This is temporary; the files should be changed
C16:Getmem.cpp
C19:Cppcheck.cpp
# A basic compiler bug
C20:BankTeller.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
C21:SortTest.cpp
C21:SortedSearchTest.cpp
# egcs is missing std::iterator:
C20:Ring.cpp
# egcs is missing char_traits
C18: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:
C18:Compare2.cpp
# Problem with egcs priority_queue:
C20:PriorityQueue4.cpp
C20:PriorityQueue8.cpp
# Broken in this compiler's library:
C20:BitSet.cpp
# These are because <sstream> isn't implemented
C19:NumberPhotos.cpp
C20:Strvector.cpp
C20:FEditTest.cpp
C20:Strdeque.cpp
C20:VectorOfBool.cpp
C20:WildLifeMonitor.cpp
# Because they haven't been rewritten to C++ yet:
C25:SingletonPattern.java
C25:BoxObserver.java
C25:RecycleA.java
C25:Trash.java
C25:Aluminum.java
C25:Paper.java
C25:Glass.java
C25:Cardboard.java
C25:ParseTrash.java
C25:Fillable.java
C25:FillableVector.java
C25:RecycleAP.java
C25:RecycleB.java
C25:TypedBinMember.java
C25:DDAluminum.java
C25:DDPaper.java
C25:DDGlass.java
C25:DDCardboard.java
C25:TypedBin.java
C25:DoubleDispatch.java
C25:Visitable.java
C25:VAluminum.java
C25:VPaper.java
C25:VGlass.java
C25:VCardboard.java
C25:Visitor.java
C25:TrashVisitor.java
C25:DynaTrash.java
# The end tag is required:
#///:~
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -