21 grudnia 2013

[C++14] Hello world

Kompilacja z ficzerami dla C++14. Niestety dla clang-3.4 wymagało to trochę zachodu, ale w końcu się udało. Przed kompilacją trzeba było doinstalować "libc++-dev - LLVM C++ Standard library (development files)".
sudo apt-cache search libc
sudo apt-get install libc++-dev
Następnym krokiem była edycja pliku cstdio. Jak przeczytałem pod tym linkiem, ::gets najwyraźniej zostało usunięte ze standardu, a ja przy próbie kompilacje otrzymywałem następujący error:
/usr/include/c++/v1/cstdio:156:9: error: no member named 'gets' in the global namespace
using ::gets;
      ~~^
1 error generated.
Sama poprawka jaką należy wprowadzić do /usr/include/c++/v1/cstdio, czyli otoczyć gets defajnsem:
#if !_ISOC11_SOURCE
using ::gets;
#endif
Kompilacja wygląda następująco:
$ clang++ -std=c++1y -stdlib=libc++ main.cpp
I kod, na którym testowałem
#include <iostream>

using namespace std;

auto fun() {
    return "Hello world";
}

int main() {
    cout << fun() << endl;
    return 0;
}

Brak komentarzy:

Prześlij komentarz