2 The following things are required for Libsigc++.
4 A good compiler with the following features
5 - capable of handling numerous templates (>200)
6 - proper template specialization
7 - proper partial specialization
9 It works better with (but does not require)
10 - template friend specialization
14 M4 to parse the header files if you wish to rebuild the headers from
17 ==================================================
21 A number of platforms do not support global C++ objects
22 in shared libraries. Although not required by this
23 library, it may result in problems when building C++
24 libraries on those platforms. The work arround is
25 to use statics in functions or pointers which must
28 Platforms known to have this bug include
29 NetBSD, HP-UX 9, HP-UX 10, Solaris without patch.
31 ==================================================
35 Cfront-based compilers: Fails
37 Forget it, get a modern c++ compiler.
42 Upgrade, new versions of GNU G++ are easily and freely available:
43 GNU G++ 2.8.X or EGCS 1.1.2. A port to this compiler is possible
47 GNU G++ 2.8: Works (Marginal)
49 partial specialization: yes
52 Is known to work correctly, but some performance may be subpar.
53 Recommend upgrading to egcs 1.1.
56 GNU egcs 1.0: Works (Marginal)
58 partial specialization: yes
61 Is known to work correctly, but some performance may be subpar.
62 Recommend upgrading to egcs 1.1.
67 partial specialization: yes
70 This is the development platform, so all functionality correct.
74 This is a cfront compiler. No where close.
75 Get a modern c++ compiler.
78 HP aC++ A.01.22: Works
80 partial specialization: yes
81 void returns: yes (only most recent version)
83 HP improved template support thus allowing compilation.
84 Earlier compilers lacked support for void returns and proper
87 Missing <iostream> - use one below
90 MipsPro 7.3 Compler on Irix: Works (Marginal)
92 partial specialization: yes
95 This compiler is barely within the range of usable compilers.
96 Requires compiling a specialization for all types in library
97 due to non-standard return behavior. Should be usable.
99 Requires a switch to get templates right.
101 CC=cc CXX=CC CPPFLAGS="-ptused" ./configure
103 Missing <iostream> - use one below
106 SunPro C++ 4.1: Unknown
108 partial specialization: no
110 Unlikely considering lack of partial specialization.
114 SunPro C++ 5.0: Unknown
116 partial specialization: yes
121 Visual C++ 5.0: Works (needs special distribution)
123 partial specialization: no
126 Although not quite up to par, a port was completed and should
127 be the basis for porting back to other earlier compilers.
128 VC++ lacks the ablity to use optional class arguments so
129 marshallers must be explicitly declared. (see doc/win32)
131 ==================================================
133 Some compilers have not yet fully adopted the standard header
134 files. (Usually because they lack some compiler feature
135 required for the standard header.) For those compilers a
136 kludge is necessary to make the same code compile on both
137 standard and non-standard headers. Add the following file
138 to the standard include path.
140 #ifndef IOSTREAM_KLUDGE
141 #define IOSTREAM_KLUDGE
142 #include <iostream.h>
143 namespace std { void iostream_kludge(); };