2014-01-09 7 views
0

Я обработки с некоторыми мультиплатформенной унаследованного кода, и существует требование, которое должно составить на Visual Studio 2005.C++ 11 на Visual Studio 2005

VS 2005 поддерживает C++ 11?

ответ

1

Нет, это не так.

В VS2008 есть TR1 (assuming sufficient service packs), которые представляют собой некоторые новые компоненты стандартной библиотеки, такие как std :: tr1 :: shared_ptr, которые вошли в стандарт с C++ 11, но у нее нет новых языковых функций такие как lambdas, ссылки rvalue и т. д., или библиотечные функции, такие как threading или std :: unique_ptr.

Вы можете получить тот же эффект в VS2005 с помощью библиотеки TR1 от Boost. Тогда, если вам нужна поддержка кросс-компилятора, вы можете сделать, например,

#include <boost/tr1/memory.hpp> 

int main() 
{ 
    std::tr1::shared_ptr<int> pi(new int(42)); 
    // ... 
} 

На платформах с их собственными реализациями TR1, подталкивания будет использовать те автоматически. На платформах без TR1 он будет использовать свою собственную реализацию, импортированную в пространство имен std :: tr1.

+0

Спасибо! Это был ответ, который мне нужен. Пока мне не нужно компилироваться в VS2005. Может быть, я могу скомпилировать VS2010. Но мне нужно дождаться разворота Windows. Я пытаюсь убедить отказаться от VS2005! :) – Victor

+1

FWIW. Вот список поддержки [C++ 11 в VS компиляторах с 2010 года вверх] (http://msdn.microsoft.com/en-us/library/hh567368.aspx). – metal

+0

Функция, которую я использую, поддерживается только на VS2013! Microsoft - не лучший выбор! :( – Victor

 Смежные вопросы

  • Нет связанных вопросов^_^