public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: bangerth@dealii.org To: gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, jstanek@iastate.edu, jstanek@vrac.iastate.edu, nobody@gcc.gnu.org Subject: Re: c++/8567: std::endl is of unknown type when overloading operator<< (repeat in case attachment didnt work) Date: Thu, 21 Nov 2002 04:17:00 -0000 [thread overview] Message-ID: <20021114233717.9324.qmail@sources.redhat.com> (raw) Synopsis: std::endl is of unknown type when overloading operator<< (repeat in case attachment didnt work) State-Changed-From-To: open->closed State-Changed-By: bangerth State-Changed-When: Thu Nov 14 15:37:17 2002 State-Changed-Why: Not a bug. Basically, it is this: --------------------------------- namespace std { template <typename T> T& endl (T&); }; class BlackHole{}; template <typename T> BlackHole& operator<<(BlackHole& bh, const T& dummy); template <typename T> BlackHole& operator<<(BlackHole& bh, T& (*dummy)(T&)); int main() { BlackHole bh; bh << std::endl; } ------------------------------- Since there is no unambiguous function std::endl, the compiler cannot know which one to take as argument, so you have to disambiguate the situation by passing it the exact template argument list. Alternatively, you can give an overloaded non-template op<<; in this example, this would do: BlackHole& operator<<(BlackHole& bh, int& (*dummy)(int&)); Then std::endl<int> would be taken. W. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8567
next reply other threads:[~2002-11-14 23:37 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2002-11-21 4:17 bangerth [this message] -- strict thread matches above, loose matches on Subject: below -- 2003-05-10 17:46 Dave Brondsema 2002-11-21 7:18 Wolfgang Bangerth 2002-11-21 6:26 Jason Stanek 2002-11-20 4:46 jstanek
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20021114233717.9324.qmail@sources.redhat.com \ --to=bangerth@dealii.org \ --cc=gcc-bugs@gcc.gnu.org \ --cc=gcc-gnats@gcc.gnu.org \ --cc=gcc-prs@gcc.gnu.org \ --cc=jstanek@iastate.edu \ --cc=jstanek@vrac.iastate.edu \ --cc=nobody@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).