http://llvm.org/bugs/show_bug.cgi?id=10315
Summary: [C++0x] "Call to deleted constructor" with move
assignment operator
Product: clang
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Keywords: compile-fail
Severity: normal
Priority: P
Component: C++0x
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected], [email protected]
clang++ 2.9 and g++ 4.6.1 accept the code below (reduced from "#include
<boost/thread.hpp>" with Boost 1.46.1), but clang++ trunk (r134813) doesn't. My
guess is that trunk is the one getting it wrong here:
$ cat foo.cc
struct shared_ptr {
shared_ptr& operator=(shared_ptr&&) { return *this; }
};
struct tss_data_node {
shared_ptr sp;
tss_data_node(shared_ptr p) : sp(p) {}
};
$ g++ -std=c++0x -fsyntax-only foo.cc
$ clang++ -std=c++0x -fsyntax-only foo.cc
$ bin/clang++ -std=c++0x -fsyntax-only foo.cc
foo.cc:6:32: error: call to deleted constructor of 'shared_ptr'
tss_data_node(shared_ptr p) : sp(p) {}
^ ~
foo.cc:1:8: note: function has been explicitly marked deleted here
struct shared_ptr {
^
1 error generated.
$ g++ --version
g++ (GCC) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ clang++ --version
clang version 2.9 (tags/RELEASE_29/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
$ bin/clang++ --version
clang version 3.0 ()
Target: x86_64-unknown-linux-gnu
Thread model: posix
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs