|
From: Christophe Prud'h. <pru...@MI...> - 2000-08-23 13:44:50
|
Hi it is Yet Another Round Of G++ Test ! I try to track some compilations problems : * missing #include <IteratorBoundsException.hpp> in Iterator.hpp might cause big trouble with exception since nothing is know about this class at compile time. This problem occur in other place the compiler needs the class interface at compile time !!! * class is missing in Friend declaraion in Synchronized.hpp * warning with corelinux::##tag (common.hpp) don't know yet how to fix it BTW Frank why do you need to do this #if !defined(__ITERATOR_HPP) #include <Iterator.hpp> #endif since it is done already in Iterator.hpp ? more to come (may be) C. -- Christophe Prud'homme | MIT, 77, Mass Ave, Rm 3-243 | He that breaks a thing to find out Cambridge MA 02139 | what it is has left the path of wisdom. Tel (Office) : (00 1) (617) 253 0229 | -- J.R.R. Tolkien Fax (Office) : (00 1) (617) 258 8559 | http://augustine.mit.edu/~prudhomm | Following the hacker spirit |
|
From: Frank V. C. <fr...@co...> - 2000-08-23 13:59:23
|
Christophe Prud'homme wrote: > > Hi > it is Yet Another Round Of G++ Test ! > > I try to track some compilations problems : > > * missing #include <IteratorBoundsException.hpp> in Iterator.hpp > might cause big trouble with exception since nothing is know about this > class at compile time. This problem occur in other place > the compiler needs the class interface at compile time !!! Oops > * class is missing in Friend declaraion in Synchronized.hpp don't need it because it is foward declared in DECLARE_CLASS(Synchronized) as per C++ standard. Are you getting an error? > * warning with corelinux::##tag (common.hpp) don't know yet how to fix it whats the warning? > > BTW Frank why do you need to do this > > #if !defined(__ITERATOR_HPP) > #include <Iterator.hpp> > #endif > > since it is done already in Iterator.hpp ? Please elucidate? > > more to come (may be) > C. > > -- > Christophe Prud'homme | > MIT, 77, Mass Ave, Rm 3-243 | He that breaks a thing to find out > Cambridge MA 02139 | what it is has left the path of wisdom. > Tel (Office) : (00 1) (617) 253 0229 | -- J.R.R. Tolkien > Fax (Office) : (00 1) (617) 258 8559 | > http://augustine.mit.edu/~prudhomm | > Following the hacker spirit > > _______________________________________________ > Corelinux-develop mailing list > Cor...@li... > http://lists.sourceforge.net/mailman/listinfo/corelinux-develop -- Frank V. Castellucci http://corelinux.sourceforge.net OOA/OOD/C++ Standards and Guidelines for Linux http://PythPat.sourceforge.net Pythons Pattern Package |
|
From: Christophe Prud'h. <pru...@MI...> - 2000-08-23 14:20:10
|
> > * class is missing in Friend declaraion in Synchronized.hpp > > don't need it because it is foward declared in > DECLARE_CLASS(Synchronized) as per C++ standard. > Are you getting an error? Yes ! > > * warning with corelinux::##tag (common.hpp) don't know yet how to fix it > > whats the warning? can't paste tag after token I''l send an email to the gcc dev mailing list > > BTW Frank why do you need to do this > > > > #if !defined(__ITERATOR_HPP) > > #include <Iterator.hpp> > > #endif > > > > since it is done already in Iterator.hpp ? > > Please elucidate? In any file you include, for example, Iterator.hpp you do what I wrote a few lines above but in Iterator.hpp, you do #if !defined(__ITERATOR_HPP) #define __ITERATOR_HPP the code #endif so you do the same thing twice, you don't need to check Iterator.hpp multiple inclusion since it is handled by the header file itself !! -- Christophe Prud'homme | MIT, 77, Mass Ave, Rm 3-243 | Cambridge MA 02139 | All laws are simulations of reality. Tel (Office) : (00 1) (617) 253 0229 | -- John C. Lilly Fax (Office) : (00 1) (617) 258 8559 | http://augustine.mit.edu/~prudhomm | Following the hacker spirit |
|
From: Frank V. C. <fr...@co...> - 2000-08-23 14:31:41
|
Christophe Prud'homme wrote: > > > > * class is missing in Friend declaraion in Synchronized.hpp > > > > don't need it because it is foward declared in > > DECLARE_CLASS(Synchronized) as per C++ standard. > > Are you getting an error? > Yes ! Ok, interesting, I'll re-review the C++ standard 1998(E) > > > > * warning with corelinux::##tag (common.hpp) don't know yet how to fix it > > > > whats the warning? > can't paste tag after token > I''l send an email to the gcc dev mailing list ok > > > > BTW Frank why do you need to do this > > > > > > #if !defined(__ITERATOR_HPP) > > > #include <Iterator.hpp> > > > #endif > > > > > > since it is done already in Iterator.hpp ? > > > > Please elucidate? > > In any file you include, for example, Iterator.hpp > > you do what I wrote a few lines above > but in Iterator.hpp, you do > > #if !defined(__ITERATOR_HPP) > #define __ITERATOR_HPP > > the code > > #endif > > so you do the same thing twice, you don't need to check Iterator.hpp multiple > inclusion since it is handled by the header file itself !! But in the calling module, if the compiler has already done it, it won't have to incur the disk I/O of opening Iterator.hpp again. > > -- > Christophe Prud'homme | > MIT, 77, Mass Ave, Rm 3-243 | > Cambridge MA 02139 | All laws are simulations of reality. > Tel (Office) : (00 1) (617) 253 0229 | -- John C. Lilly > Fax (Office) : (00 1) (617) 258 8559 | > http://augustine.mit.edu/~prudhomm | > Following the hacker spirit > > _______________________________________________ > Corelinux-develop mailing list > Cor...@li... > http://lists.sourceforge.net/mailman/listinfo/corelinux-develop -- Frank V. Castellucci |
|
From: Gabriel D. R. <Gab...@cm...> - 2000-08-23 22:37:56
|
"Frank V. Castellucci" <fr...@co...> writes: | Christophe Prud'homme wrote: | > | > > > * class is missing in Friend declaraion in Synchronized.hpp | > > | > > don't need it because it is foward declared in | > > DECLARE_CLASS(Synchronized) as per C++ standard. | > > Are you getting an error? | > Yes ! | | Ok, interesting, I'll re-review the C++ standard 1998(E) The interesting part is clause 2 about lexical conventions -- take a look at the paragraphs about preprocessing tokens then go to 16.3.3 about "The ## operator". It says: 16.3.3/3: For both object-like and function-like macro invocations, before the replacement list is reexamined for more macro names to replace,e ach instance of ## preprocessing token in the replacement list (not from an argument) is deleted and the preceding preprocessing token is concatenated with the following preprocessing token. If the result is not a valid preprocessing token, the behavior is undefined. [...] -- Gaby |
|
From: Gabriel D. R. <Gab...@cm...> - 2000-08-23 22:32:20
|
"Christophe Prud'homme" <pru...@MI...> writes: | Hi | it is Yet Another Round Of G++ Test ! | | I try to track some compilations problems : | | * missing #include <IteratorBoundsException.hpp> in Iterator.hpp | might cause big trouble with exception since nothing is know about this | class at compile time. This problem occur in other place | the compiler needs the class interface at compile time !!! True. | * class is missing in Friend declaraion in Synchronized.hpp Yes, the compiler is now more stringent about elaborated-type-specifier. | * warning with corelinux::##tag (common.hpp) don't know yet how to fix it I think that is wrong since after replacemend, the result is not a valid preprocessing-token. -- Gaby |