Visual Studio 2008 with c++11

前端 未结 5 969
小蘑菇
小蘑菇 2020-12-10 06:30

Can I somehow make Visual C++ 2008 to have C++11 library and use all the good things C++11 standard allows?

相关标签:
5条回答
  • 2020-12-10 06:48

    Some of the basics of the C++11 standard library are available in VS2008 by using Boost, which has plenty more useful tools too.

    0 讨论(0)
  • 2020-12-10 06:51

    Using Visual Studio 2008 may seem like a complete waste of time when you can use the latest Visual Studio Community free of charge coming with the latest C++ compilers. However, I very much prefer the Visual Studio 2008 IDE for C++. There's a lot of reasons but speed is perhaps the most obvious. The trick is to use the latest compilers and tools with the Visual Studio 2008 IDE. It actually works great without any issues what I've encountered doing this for years. Here's how I do it:

    1. delete %LOCALAPPDATA%/Microsoft/VisualStudio/9.0/VCComponents.dat
    2. edit <VS2008PATH>/VC/vcpackages/VCProjectEngine.dll.config and <VS2008PATH>/VC/vcpackages/AMD64.VCPlatform.config to reflect the paths of say Visual Studio 2019 Community, the Windows 10 SDK and any extra libraries you want.

    That's all you need! Tips: I use 2 environment variables to keep track of compiler version number and SDK version number CurrentUCRT=10.0.18362.0, CurrentVCTools=14.24.28314 which I change manually when needed. So a line in VCProjectEngine.dll.config looks for example like this: Include="$(CurrentVS)VC/Tools/MSVC/$(CurrentVCTools)/include;". I use symbolic links for the config files so I don't have to recreate them at new Visual Studio installs. You can also enable use of the clang compiler using this technique, like this:

    1. create an empty directory and place it first in the search order above.
    2. make a symbolic link to clang-cl.exe in the directory and name it cl.exe.
    3. Turn clang compiler off and on by renaming the symbolic link.
    0 讨论(0)
  • 2020-12-10 06:56

    If you're stuck using MSVC 2008 or 2010, I've managed to implement various C++11 (and some possibly-C++14) features for it as part of my cxxomfort backports library. Of course features that rely on lexer/parser support (such as variadic templates) can not be emulated, but for the most part it allows me to write forwards-compatible code in MSVC 2008 Express (my main Windows target).

    However the idea would be that you use another compiler. There's GCC support for about as hight as 4.6 for Windows XP (via eg.: Mingw installer), and it brings about most of the important C++11 niceties such as variadic templates and constexpr, noexcept.

    0 讨论(0)
  • 2020-12-10 07:10

    In short words, it's impossible. VS2008 has no C++11 support and replacing the libraries would lead to chaos.

    In long words, you maybe could do something:

    1. Use another compiler: C++ compiler support (Updated Link)
    2. You could upgrade your visual studio, but even MSVC12 (visual studio 2013) is not supporting all of C++11 standard.
    3. You could embed the Intel compiler into your visual studio. But also Intel is not fully supporting C++11, nevertheless more than MSVC. Here (Updated link now provides a general description) a small howto embed the Intel compiler.
    4. Update: clang is now also able to be used with visual studio, see here.
    5. Update: As Melebius stated in the comments, MSVC19 (VS2015) finally supports most of the C++11 standard... Support For C++11/14/17 Features (Modern C++)
    0 讨论(0)
  • 2020-12-10 07:13

    If you can upgrade to MSVC++ 2010, it implements a limited subset of the standard. Back in 2011 Marc Gregoire built a nice PowerPoint slide set showing the C11 features supported in MS Visual C++ 2010.

    (As someone who is limited to using XP as well at home, I can feel your pain.)

    If you don't need to build MS-Windows, CLI or MFC apps, you might consider G++, which has a pretty broad subset of the C11 standard in the 32-bit version. If you don't have it, you can download the CYGWIN application/DLL at their website.

    As someone mentioned upstream, you might try porting the more compliant compilers into MSVC. Alas, I haven't tried porting it yet, so I can't give you any tips or tricks to help in doing so.

    0 讨论(0)
提交回复
热议问题