From 485782792ad03df7a7953d99a0b9c01e84c40839 Mon Sep 17 00:00:00 2001
From: Vesa Karvonen 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.
+
+
+
+
+
+
+
+
+
+ Boost.Preprocessor
+ Bibliography
+
+
+
+
+
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- |
-
- -
© 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].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_REPEATNOTE: 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.