diff --git a/doc/bibliography.htm b/doc/bibliography.htm new file mode 100644 index 0000000..8fec835 --- /dev/null +++ b/doc/bibliography.htm @@ -0,0 +1,47 @@ + + + +Boost.Preprocessor - Bibliography + + + + + + + +
+

C++ Boost

+
+

Boost.Preprocessor

+

Bibliography

+
+ +
+ + + + + + + + + + + +
[Stroustrup]Stroustrup: The Design and Evolution of C++, ISBN 0201543303
[Czarnecki]Czarnecki, Eisenecker: Generative Programming, ISBN 0201309777
[Barton]Barton, Nackman: Scientific and Engineering C++, ISBN 0201533936
[McConnell]McConnell: Code Complete, ISBN 1556154844
[Std]ISO/IEC 14882:1998 Programming languages - C++
[Thompson]Thompson: Haskell: The Craft of Functional Programming, ISBN 0201342758
[Okasaki]Okasaki: Purely Functional Data Structures, ISBN 0521663504
[Cousineau]Cousineau, Mauny: The Functional Approach to Programming, ISBN 0521576814
[Abelson]Abelson, Sussman, Sussman: Structure and Interpretation of Computer Programs, ISBN 0262011530
+ +
+ +

Revised + + +

+

© Copyright Housemarque Oy 2002

+ +

Permission to copy, use, modify, sell and distribute this document is granted +provided this copyright notice appears in all copies. This document is provided +"as is" without express or implied warranty, and with no claim as to its suitability +for any purpose.

+ + diff --git a/doc/index.htm b/doc/index.htm index 2742b19..95ef2c1 100644 --- a/doc/index.htm +++ b/doc/index.htm @@ -26,7 +26,7 @@
Widely known problems with the C preprocessor
Keywords for syntax highlighting
Known problems with specific compilers
-
References
+
Bibliography
Acknowledgements
diff --git a/doc/known_problems_with_cpp.htm b/doc/known_problems_with_cpp.htm index 7d3cedc..e489fe7 100644 --- a/doc/known_problems_with_cpp.htm +++ b/doc/known_problems_with_cpp.htm @@ -100,15 +100,15 @@ substituting the parameters of the macro.

simply by using a search and replace tool.

An especially important thing to remember is to limit the use of preprocessor to the structured, well understood and safe methods. Structure helps to understand - complex systems [4].

+ complex systems [McConnell].


PROBLEM: "I'd -like to see Cpp abolished." - Bjarne Stroustrup in [1]

+like to see Cpp abolished." - Bjarne Stroustrup in [Stroustrup]

SOLUTION: The C preprocessor will be here for a long time.

In practice, preprocessor metaprogramming is far simpler and more portable - than template metaprogramming [2].

+ than template metaprogramming [Czarnecki].


Revised diff --git a/doc/references.htm b/doc/references.htm deleted file mode 100644 index 98f42dc..0000000 --- a/doc/references.htm +++ /dev/null @@ -1,40 +0,0 @@ - - - -Boost.Preprocessor - References - - - - - - - -
-

C++ Boost

-
-

Boost.Preprocessor

-

References

-
- -


- -
    -
  1. Stroustrup: The Design and Evolution of C++, ISBN 0-201-54330-3 -
  2. Czarnecki, Eisenecker: Generative Programming, ISBN 0-201-30977-7 -
  3. Barton, Nackman: Scientific and Engineering C++, ISBN 0-201-53393-6 -
  4. McConnell: Code Complete, ISBN 1-55615-484-4
  5. -
  6. ISO/IEC 14882:1998 Programming languages - C++
  7. -
-

- -


- -

© Copyright Housemarque Oy 2002

- -

Permission to copy, use, modify, sell and distribute this document is granted -provided this copyright notice appears in all copies. This document is provided -"as is" without express or implied warranty, and with no claim as to its suitability -for any purpose.

- - diff --git a/doc/tutorial.htm b/doc/tutorial.htm index 399ad37..dbc6e8d 100644 --- a/doc/tutorial.htm +++ b/doc/tutorial.htm @@ -103,7 +103,7 @@ yes_type is_function_tester(R (*)(A0, A1, A2)); specifically does not support repetition or recursive macros. Library support is needed!

For detailed information on the capabilities and limitations of the preprocessor, - please refer to the C++ standard [5].

+ please refer to the C++ standard [Std].

The motivation example revisited

Using the primitives of the PREPROCESSOR library, the is_function_tester()s could be implemented like this:

@@ -158,8 +158,8 @@ BOOST_PP_DEF(/) the line continuation operator when they are aligned.

NOTES: You can extend this example by defining more and different kinds of operators. Before doing so, consider using the Algebraic Categories technique - introduced in [3] or a Layered Architecture (see for instance - [2]). However, at some point you must type the operator tokens + introduced in [Barton] or a Layered Architecture (see for instance + [Czarnecki]). However, at some point you must type the operator tokens *, /, +, -, ..., because it is impossible to generate them using templates. The resulting Categorical Repetition of tokens can be eliminated by using preprocessor metaprogramming.

@@ -369,7 +369,7 @@ BOOST_PP_REPEAT

NOTE: The repetition of the above -example can be eliminated using template metaprogramming [2] as well. However +example can be eliminated using template metaprogramming [Czarnecki] as well. However categorical repetition of operator tokens can not be completely eliminated by using template metaprogramming.