2013-11-30 2 views
5

Могу ли я как-то заставить Visual C++ 2008 иметь библиотеку C++ 11 и использовать все хорошие вещи, разрешенные стандартом C++ 11?Visual Studio 2008 с C++ 11

+1

Нет, VS2008 не поддерживает C++ 11, если вы не взломаете другой компилятор. – chris

+0

, но, может быть, мы могли бы загрузить дополнительные файлы библиотеки C++ 11? – Ivars

+0

Вам будет трудно. Подумайте о таких вещах, как 'std :: tuple', где каждый разработчик собирается использовать вариативные шаблоны. – chris

ответ

4

Короче говоря, это невозможно. VS2008 не поддерживает C++ 11, а замена библиотек приведет к хаосу.

В длинных слов, может быть, вы могли бы сделать что-то:

  1. Используйте другой компилятор: C++ compiler support (Updated Link)
  2. Вы можете обновить Visual Studio, но даже MSVC12 (Visual Studio 2013) не поддерживает все C + +11 стандарт.
  3. Вы можете встроить компилятор Intel в свою визуальную студию. Но и Intel не полностью поддерживает C++ 11, тем не менее, больше, чем MSVC. Here's небольшой встроенный компилятор Intel.
  4. Обновление: clang теперь также можно использовать с визуальной студией, см. here.
  5. Update: Как указано Melebius в комментариях, MSVC19 (VS2015), наконец, поддерживает большинство стандарта C++ 11 ... Support For C++11/14/17 Features (Modern C++)
+0

это печально. У меня есть старая машина и вам нужно запустить winxp, который не поддерживается с vs2010 (который уже имеет ужасную производительность на моем компьютере). – Ivars

+0

@ user2543574 вам нужно использовать визуальную студию? – user1810087

+0

нет, но я не уверен, что другие компиляторы будут работать быстрее, чем vc2008 – Ivars

0

Если вы можете перейти на MSVC++ 2010, он реализует ограниченное подмножество стандарта. Еще в 2011 году Марк Грегуар построил хороший PowerPoint slide set показывающий C11 функций, поддерживаемых MS Visual C++ 2010.

(как кто-то ограничивается использованием XP, а у себя дома, я чувствую вашу боль.)

Если вам не нужно создавать приложения MS-Windows, CLI или MFC, вы можете подумать о G ++, который имеет довольно широкое подмножество стандарта C11 в 32-разрядной версии. Если у вас его нет, вы можете скачать приложение CYGWIN/DLL по адресу website.

Как упоминалось выше, вы можете попробовать портировать более совместимые компиляторы в MSVC. Увы, я еще не пробовал портировать его, поэтому я не могу дать вам никаких советов или приемов, чтобы помочь в этом.

1

Если вы застряли с использованием MSVC 2008 или 2010, мне удалось реализовать различные возможности C++ 11 (и некоторые возможно-C++ 14) для него как часть моего cxxomfort backports library. Конечно, функции, которые полагаются на поддержку lexer/parser (например, вариативные шаблоны), не могут быть эмулированы, но по большей части позволяют мне писать код, совместимый с Outlook, в MSVC 2008 Express (моя основная цель Windows).

Однако идея состоит в том, что вы используете другой компилятор. Поддержка GCC примерно так же высока, как 4.6 для Windows XP (например, установщик Mingw), и это приводит к большей части важных тонкостей C++ 11, таких как вариативные шаблоны и constexpr, noexcept.

0

Некоторые из основ стандартной библиотеки C++ 11 доступны в VS2008 с использованием Boost, в котором также есть много полезных инструментов.