Visual a C++'11

0

Cześć,
Czy wiecie może, czy któraś z wersji Visual Studio obsługuje już standard C+='11 czyli shared i unique pointery?
Czy jeśli np VS 2010 nie obsługuje to da sie go o taką obsługę zaktualizować jakoś?

0

Dlaczego nie sprawdzisz?
Na pewno nie ma shared_ptr i unique_ptr w 2008, i na pewno są w 2013 Preview.

Nie pamiętam jak w 2010 i 2012.

Czy jeśli np VS 2010 nie obsługuje to da sie go o taką obsługę zaktualizować jakoś?

Użyć biblioteki Boost.

#include <boost/smart_ptr.hpp>
int main()
{
	// podobne do unique_ptr
	boost::scoped_ptr<int> p(new int[256]);
}

Ogólnie implementacja C++11 Microsoftowi bardzo ślamazarnie idzie. Dla porównania Clang dorobił się od zera do prawie pełnego supportu C++11 w dwa lata. To jakby jeden release Visuala.

0

Np. po wpisaniu w googlu hasła "c++11 support in visual studio 2010" drugim linkiem jest:
http://msdn.microsoft.com/en-us/library/vstudio/hh567368.aspx

:)

0

std::shared_ptr oraz std::unique_ptr są dostępne w Visual Studio 2010.

Dla porównania Clang dorobił się od zera do prawie pełnego supportu C++11 w dwa lata.

Ale za to nie mają biblioteki standardowej, a to pokaźna część C++. Ich implementacja, czyli libc++ działa jako tako jedynie na Mac OS X.

0
Azarien napisał(a):

Ogólnie implementacja C++11 Microsoftowi bardzo ślamazarnie idzie. Dla porównania Clang dorobił się od zera do prawie pełnego supportu C++11 w dwa lata. To jakby jeden release Visuala.

Szkoda tylko że Clang nie działa (oficjalnie) pod Windows...

Boost::scoped_ptr nie jest zastępnikiem std::auto_ptr (brak release).

Ścieżka przechodzenia na bardziej nowoczesne pointery jest mniej więcej taka:
std::auto_ptr -> boost::unique_ptr -> std::unique_ptr
boost::shared_ptr -> std::shared_ptr
boost::scoped_ptr -> ?

Nie pamiętam czy są jakieś znaczące różnice m. boost::unique_ptr a std::unique_ptr (być może są).

0
vpiotr napisał(a)

Szkoda tylko że Clang nie działa (oficjalnie) pod Windows...
Za czasów wersji 2.9 udało mi się skompilować wersję kompatybilną z MinGW, po paru poprawkach w kodzie. Nowsze wersje się co prawda kompilują (tych poprawek nadal źródła wymagają), ale skompilowane programy crashują na starcie. Nie mam czasu drążyć tematu.

Nie pamiętam czy są jakieś znaczące różnice m. boost::unique_ptr a std::unique_ptr (być może są).
Z tego co ostatnio patrzyłem (a patrzyłem przed chwilą), to nie istnieje boost::unique_ptr, dlatego podałem przykład ze scoped_ptr. Czyżbym źle szukał?

Rev napisał(a)

Ale za to nie mają biblioteki standardowej, a to pokaźna część C++
Można używać tej od GCC, jak ona się tam nazywa.

Ich implementacja, czyli libc++ działa jako tako jedynie na Mac OS X.
i FreeBSD; od wersji 10 cały system już będzie domyślnie skompilowany Clangiem z libc++. (GCC i ogólnie reszta GNU jest "considered harmful" ze względu na licencję GPL3, w środowisku BSD uważaną za zuo).

0
Azarien napisał(a):
vpiotr napisał(a)

Szkoda tylko że Clang nie działa (oficjalnie) pod Windows...
Za czasów wersji 2.9 udało mi się skompilować wersję kompatybilną z MinGW, po paru poprawkach w kodzie. Nowsze wersje się co prawda kompilują (tych poprawek nadal źródła wymagają), ale skompilowane programy crashują na starcie. Nie mam czasu drążyć tematu.

Ja wychodzę z założenia, że jeśli binarek nie ma dostępnych na ich stronie to nie wspierają danego OS-a.
A to co napisałeś pamiętam z jakiejś poprzedniej dyskusji - nie zachęca.

Azarien napisał(a):
vpiotr napisał(a)

Nie pamiętam czy są jakieś znaczące różnice m. boost::unique_ptr a std::unique_ptr (być może są).

Z tego co ostatnio patrzyłem (a patrzyłem przed chwilą), to nie istnieje boost::unique_ptr, dlatego podałem przykład ze scoped_ptr. Czyżbym źle szukał?

http://www.boost.org/doc/libs/1_54_0/doc/html/boost/interprocess/unique_ptr.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1