public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/60594] New: std::function of a type with a declared (but not defined) return type fails to compile
@ 2014-03-19 18:49 dblaikie at gmail dot com
  2014-03-19 19:04 ` [Bug libstdc++/60594] " redi at gcc dot gnu.org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: dblaikie at gmail dot com @ 2014-03-19 18:49 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60594

            Bug ID: 60594
           Summary: std::function of a type with a declared (but not
                    defined) return type fails to compile
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dblaikie at gmail dot com
                CC: chandlerc at gmail dot com

#include <functional>
#include <type_traits>
struct bar;
#if BUG1
struct foo { std::function<bar ()> f; };
#elif BUG2
int i = std::is_copy_constructible<std::function<bar()>>::value;
#else
std::function<bar ()> b;
#endif
struct bar { };
int main() {
  std::function<bar ()> g([] { return bar(); });
}

Clang rejects both BUG1 and BUG2.
GCC ToT (20140219) rejects BUG2.

(I believe the Clang rejection of BUG1 is erroneous and will file a bug for
that)

libc++ with Clang compiles successfully in all 3 variants.

It looks like, somehow, instantiating the declaration of the std::function copy
constructor relies on the completeness of 'bar'.


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-05-06 13:29 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-19 18:49 [Bug libstdc++/60594] New: std::function of a type with a declared (but not defined) return type fails to compile dblaikie at gmail dot com
2014-03-19 19:04 ` [Bug libstdc++/60594] " redi at gcc dot gnu.org
2014-03-19 19:48 ` redi at gcc dot gnu.org
2014-03-19 20:52 ` chandlerc at gmail dot com
2014-03-19 21:22 ` daniel.kruegler at googlemail dot com
2014-04-08  4:16 ` kariya_mitsuru at hotmail dot com
2014-04-08 10:07 ` redi at gcc dot gnu.org
2014-04-15 15:26 ` [Bug libstdc++/60594] [4.8/4.9/4.10 Regression] " redi at gcc dot gnu.org
2014-04-15 15:27 ` [Bug libstdc++/60594] [4.8/4.9 " redi at gcc dot gnu.org
2014-05-06 11:45 ` redi at gcc dot gnu.org
2014-05-06 13:28 ` redi at gcc dot gnu.org
2014-05-06 13:29 ` redi at gcc dot gnu.org

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).