Visual Studio IDE

Announcement: Last fall, we migrated this forum to Visual Studio Developer Community to provide you one convenient and responsive system for all feedback. As the final step in the migration, this forum will be closed off completely on June 1st, 2019. We encourage you to visit Visual Studio Developer Community where you can now suggest new ideas, browse and vote on existing ideas, and engage with Visual Studio teams.

We’d like your suggestions and ideas to help us continuously improve future releases of Visual Studio, so we’ve partnered with UserVoice, a third-party service, to collect your feedback. Please do not send any novel or patentable ideas, copyrighted materials, samples or demos for which you do not want to grant a license to Microsoft.

This site is for feature suggestions; if you need to file a bug, you can visit our Developer Community website to get started.

Note: your use of the portal and your submission is subject to the UserVoice Terms of Service & Privacy Policy and license terms.

We look forward to hearing from you!
- The Visual Studio Team

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Improve IntelliSense tooltip for make_shared/make_unique/emplace_back/etc

    With the new C++11/14 support, and use of all the perfect forwarding functions, the tooltip with help for parameters to functions have gone lost. Normally while writing a call to a constructor, you would get to see what parameters it takes, and what type they are, etc. Now all you get is an info saying "_Types &&... _Args", or so. IntelliSense should really either have an internal list of functions to treat special, or even better, have a pragma, attribute, or special comment that can be placed at a function to mark it as a perfect forwarding proxy. Maybe something…

    137 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  2. Include what you use

    https://code.google.com/p/include-what-you-use/
    Can we have something like this CLang based tool which will remove unnecessary includes?

    121 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  3. Have a version of Windows.h that doesn't define macros

    From time to time I run into a collision between code and macros defined in Windows.h. The macros cause unintentional expansion of parts of my code or third party code and when they do waste a lot of time in trying to find workarounds.

    Please introduce a WindowsWithoutMacros.h that defines the Win32 API, but uses proper C++ functions instead of macros. I'm sure for all the functions ending XXXW or XXXA some inline functions could wrap the dispatching.... well, I'll leave the implementation to you. There must be better ways than the current macro mess.

    119 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  4. 104 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  5. Improve CMake support & integration

    In general, I'd like to see improved CMake support (e.g. Edit & Continue doesn't work out of the box, profiling in x64 requires adjustments, ...) for C++ projects. Also integration with CTest could be improved.

    I would also very much like to be able to create the new VS2015 Android project in CMake, generate a VS solution file and then build & debug it, instead of only using a sln.

    Only like that the code can be fully cross-platform compatible!

    102 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  6. Add option to disable "References" folder in Solution Explorer tab.

    Add option to disable "References" folder in Solution Explorer tab. One suggested location for such an option could be Tools > Options > Text Editor > C/C++ > Advanced > Disable References Folder [True | False]

    97 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  7. Please support newer version of OpenMP

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351554/please-support-newer-version-of-openmp.html
    VC only support OpenMP 2.0 for a long time.
    Could please update it?

    96 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    6 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  8. Support __forceinline on C++ lambda expressions

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351580/support-forceinline-on-c-lambda-expressions.html
    clang and gcc both have supported force-inlining lambda expressions for years, but in Visual C++ there's still no way to do this.

    I've attached a sample cpp file to illustrate the problem. Or view it interactively here: https://repl.it/LM8G/11

    Because a lambda is just a class with operator(), and we can manually define such a class having the operator() forceinlined (as in the above workaround), I see no reason why VC++ could not support forceinlining a lambda.

    Of course, in the above example the…

    93 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  9. Integrate Conan.Io package manger into visual studio

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351541/integrate-conanio-package-manger-into-visual-studi.html
    Conan.IO is a platform neutral package manager for C++.
    It is the only package manager that can handle the packages in a compiler and platform neutral way. Nuget and vcpkg are only available on windows.

    The problem with conan.io is that there is an effort to learn it. This effort could be improved if there would be an integration into Visual Studio.

    Something like the nuget integration would help a lot.

    Here a presentation about conan.io
    https://www.youtube.com/watch?v=xvqH_ck-5Q8

    89 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    5 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  10. code metrics

    Support C++ code metrics

    When I do `Analyze` -> `Calculate Code Metrics` on a c++ project I get `The project target file '***.lib' contains no managed code.

    85 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  11. Open-source Image Watch plugin

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351613/open-source-image-watch-plugin.html
    It would be awesome if Microsoft open-sourced the Image Watch plugin for VS2017. It could be improved in various ways, but MS doesn't seem to have too many resources to put time into it. I am sure the community would pick this up, or at least fix something if it's broken.
    Apparently there is willingness and interest within MS to open-source Image Watch but there needs to be sufficient community interest!

    83 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  12. Support JavaDoc / doxygen style code comments for C++ intellisense

    XML documentation provides some benefit for intellisense, but it is very unwieldy for C++ (and unusual within the C/C++ ecosystem in general)

    82 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  13. 82 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    under review  ·  3 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  14. IntelliSense support for C++ Modules

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351558/intellisense-support-for-c-modules.html
    IntelliSense support for C++ modules would be highly appreciated. At its current state, it's just unusable, even for testing purposes.

    The code in the image is fully functional and compiles just fine, yet it's cluttered with IntelliSense error messages and code-completion naturally doesn't work either

    74 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  15. Official opening of WTL support

    Total is well known, WTL based on ATL, it was an excellent Win32 application development framework. Relative to the MFC,WTL a more lightweight, high efficiency, the links generated by the small size of the program. My only regret is that while WTL is initially within Visual Studio release, WTL is not supported by the Visual Studio official. I think, Microsoft to retain developer, especially C++ developer, in UI framework Shang does needs efforts, MFC bloated and old, ATL does not too for GUI program, pure SDK of program complex degrees too high, most manufacturers in using Visual Studio using C++…

    72 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    3 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  16. Support c++11 unique_ptr and shared_ptr with C++/CLI

    C++11 introduced move and unique_ptr, shared_ptr and weak_ptr. This new types highly improve the productivity and the robustness of C++ code. When we implement wrapper/adapter for the new for C++ code that uses unique_ptr/shared_ptr/weak_ptr we have to somehow return to raw pointers because it is only possible to store raw pointers inside of managed classes.
    When it is not possible to somehow allow unique_ptr/shared_ptr/weak_ptr as members of managed C++/CLI classes (ref class/struct) my suggestion is to use a similar approach as with gcroot and to provide a wrapper for that pointer types.

    67 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    4 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  17. provide an option to install Visual Studio 2017 15.2 or make it possible to update from 15.0 to 15.2

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351570/provide-an-option-to-install-visual-studio-2017-15.html
    We need an option to install 15.2 or to update 15.0 to 15.2 without automatically updating to 15.3.x.
    Please make this possible with a setup program, with an offline istaller or even online. Thanks.

    65 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    8 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  18. Add IntelliTest for C++ native apps

    I just saw in the VS2015 launch video how IntelliTest works for C# and I would love to see similar functionality for native desktop C++ apps.

    With tools available like libFuzz from the LLVM project, this would actually hopefully not be as hard as it sounds to add at first glance.

    Add IntelliTest for C++ native apps

    55 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  19. Implement the C++17 [[fallthrough]] annotation and add an optional compiler warning for non-annotated switch fallthroughs

    The accidental omission of a 'break' statement in a 'switch' is a very common source of bugs. C++17 has approved [[fallback]] as an official way of annotating intentional fall-throughs.

    It would be very helpful to programmers if Visual C++ could implement support for this annotation quickly (i.e., before C++17 is fully ratified, which could take quite a while), and also implement an optional compiler warning for when a non-annotated fall-through is found.

    Clang already supports this via the -Wimplicit-fallthrough option (see http://stackoverflow.com/a/27965827/434413), but Visual C++ programmers currently have no such option

    48 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  20. Please add an option to auto-indent the code after an access specifier

    Please add an option to auto-indent the code after an access specifier.

    Two questions were asked about this on StackOverflow, and I myself very much desire this capability:
    http://stackoverflow.com/questions/20695923/indenting-issue-after-access-specifiers-in-visual-studio-express
    http://stackoverflow.com/questions/31908467/how-to-change-the-indentation-of-code-after-access-modifiers-in-visual-studio

    It's very simple, as the second link put it:

    "I would like to get this indentation when working with classes / structs:

    class MyClass
    {
    public:
    MyClass();
    }

    However the text formatting option only allows for either this:

    class MyClass
    {
    public:
    MyClass();
    }

    or that:

    class MyClass
    {
    public:
    MyClass();
    }"

    Thank you!

    47 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →

Feedback and Knowledge Base