delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
From: | Michael Beck <beck AT ipd DOT info DOT uni-karlsruhe DOT de> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: Inline functions question |
Date: | Fri, 23 Apr 2004 16:45:41 +0200 |
Organization: | University of Karlsruhe, Germany |
Lines: | 34 |
Message-ID: | <c6ba6l$kfk$1@news2.rz.uni-karlsruhe.de> |
References: | <c6b824$2ks9$1 AT alpha2 DOT radio-msu DOT net> |
NNTP-Posting-Host: | i44pc33.info.uni-karlsruhe.de |
Mime-Version: | 1.0 |
X-Trace: | news2.rz.uni-karlsruhe.de 1082731541 20980 172.22.85.161 (23 Apr 2004 14:45:41 GMT) |
X-Complaints-To: | usenet AT rz DOT uni-karlsruhe DOT de |
NNTP-Posting-Date: | Fri, 23 Apr 2004 14:45:41 +0000 (UTC) |
User-Agent: | KNode/0.7.1 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Anthony wrote: > Why does this code [..] > inline void A::f2(const char *str) > { > std::cout << "\n __func__ = " << __func__ > << "\n __PRETTY_FUNCTION__ = " << __PRETTY_FUNCTION__ > << "\n Caller = " << str; > } > > void A::f1() > { > std::cout << "\n Now f1() will call f2()."; > f2(__func__); > } [..] > produces this: > > Now f1() will call f2(). > __func__ = f2 <---- I expected f1 > __PRETTY_FUNCTION__ = void A::f2(const char*) <---- I expected > A::f2(...) > Caller = f1 > > The f2() is supposed to be implanted in f1(), no? Yes, but inlining is done in the optimization phase, while __func__ is typically resolved be the frontend. So, BEFORE f2 is "implanted", __func__ is already resolved into the constant "f2". best regards, -- Michael Beck beck AT ipd DOT info DOT uni-karlsruhe DOT de
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |