c++11 question: clang++ 3.3 <future> header not found

Quark unixuser2000-fbsd at yahoo.com
Tue Aug 27 11:48:30 UTC 2013





----- Original Message -----
> From: Tijl Coosemans <tijl at coosemans.org>
> To: Quark <unixuser2000-fbsd at yahoo.com>
> Cc: "freebsd-questions at freebsd.org" <freebsd-questions at freebsd.org>
> Sent: Tuesday, 27 August 2013 1:41 PM
> Subject: Re: c++11 question: clang++ 3.3 <future> header not found
> 
> On Tue, 27 Aug 2013 15:22:49 +0800 (SGT) Quark wrote:
>>  % uname -a
>>  FreeBSD cobalt 9.2-RC3 FreeBSD 9.2-RC3 #0 r254795: Sat Aug 24 20:25:04 UTC 
> 2013     root at bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
>> 
>>  % clang++ --version
>>  FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
>>  Target: x86_64-unknown-freebsd9.2
>>  Thread model: posix
>> 
>>  test program
>>  #include <iostream>
>>  #include <future>
>> 
>>  int main( int argc, char* argv[])
>>  {
>>          auto f = std::async( [] () {
>>                          std::cout << "Hello, World!" 
> << std::endl;
>>                          });
>>          f.wait();
>>          return 0;
>>  }
>> 
>> 
>>  error received is
>>  % clang++ -otest test.cc
>> 
>>  test.cc:2:10: fatal error: 'future' file not found
>>  #include <future>
>>           ^
>>  1 error generated.
>> 
>>  I guess clang is re-using system headers which belong to older gcc 4.2
>>  I also have gcc48 installed, how can I make clang to refer gcc48 headers?
> 
> There two C++ runtime libraries, the old gcc libstdc++ which is used by
> default and the new C++11 libc++.  You can use the latter like this:
> 
> clang++ -std=c++11 -stdlib=libc++ -otest test.cc
> 

thanks, it worked.


More information about the freebsd-questions mailing list