std::pow implementation
Gabriel Dos Reis
gdr@integrable-solutions.net
Wed Jul 30 14:33:00 GMT 2003
Martin Reinecke <martin@MPA-Garching.MPG.DE> writes:
[...]
| Say I write the following
|
| ==========foo.h
|
| class foo
| {
| inline void bar();
| };
|
| ==========foo.cc
|
| inline void foo::bar() {...}
|
| No current g++ will inline foo::bar() (and most other compilers won't either) when I
| call it from, say, baz.cc.
The standard does mandate that the definition of an inline function
be available in every translation unit that uses it.
[...]
| > But I see on concrete real world codes that the "inline" meaning
| > transmutation GCC operates does cause more grief that it does good.
|
| Probably. I just think it was caused by the fact that C++ compilers
| have been imperfect (i.e. lacking intermodule inlining) for a long time.
KCC did better, even with no inter translation-unit optimization, on
real world codes.
| And because so many codes exist that were written with the "transmuted"
| meaning in mind, there will be a terrible lot of breakage if the meaning
| is reset abruptly.
|
| > | You're right. It's not too beautiful and makes maintenance a bit harder,
| > | but on the other hand it shouldn't happen too often.
| > and is expressed with standard constructs.
|
| Agreed. I was arguing for a possible extension of the standard itself, not
| for introducing new pragmas.
I see, but that tends to confuse the debate.
-- Gaby
More information about the Gcc
mailing list