[cfe-dev] Problem with libc++
dlorenz at medimach.de
Tue Apr 3 09:17:42 PDT 2012
On 03.04.2012, at 17:38, Jean-Daniel Dupas wrote:
> Le 3 avr. 2012 à 17:20, Howard Hinnant a écrit :
>> On Apr 3, 2012, at 10:36 AM, Dix Lorenz wrote:
>>> I don't know if this is the right place for this, if not please direct me to a better place.
>>> I just downloaded clang and libc++ trunk. This code fails:
>>> #include <string>
>>> #include <vector>
>>> using namespace std;
>>> int main(int argc, const char * argv)
>>> vector<string> v;
>>> v.push_back("Hello"); // <--- error here
>>> return 0;
>>> The error is "no viable overloaded '='". It seems as if moving strings is broken...
>>> This is in Xcode 4.3.2 (with the include directory from libc++ trunk replacing /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/c++/v1). If I switch to the "normal" clang Compiler in Xcode it works. If I switch from using "libc++" to "libstdc++" it also works, its the combination of the current clang and libc++ that have this problem.
>>> /opt/bin/clang --version
>>> clang version 3.1 (trunk 153948)
>>> Target: x86_64-apple-darwin11.3.0
>> This is looking like a clang problem. I've got TOT libc++, but a slightly older clang and I'm not seeing this behavior.
> I don't think. I have a TOT clang & libc++, and don't have any issue. Probably a problem with the way clang and libc++ are used with Xcode.
Xcode has (at least) 2 locations for the c++ headers, one in Xcode/Developer/Toolchains and another in Xcode/Developer/Platforms/MacOSX.platform/blablabla. I had replaced the one in Toolchains with the libc++ ToT headers, but not the other. Still figuring out how and when it uses which headers, but indeed it's an Xcode problem. Or rather a problem with me not understanding how Xcode works :-)
More information about the cfe-dev