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. Integrate with Qt for C++ UIs

    Since MFC is old and awful and Qt is new, nice, and cross platform, consider integrating with Qt for UI development similarly to how you have done with Python, and Unity3D.

    I know there are already plug-ins to allow Qt to work within Visual Studio but it would be better for Microsoft to embrace it so that all of us waiting on a next-gen C++ UI toolkit from MS can move forward.

    5 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. 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 →
  3. Add lambda support to C++/CLI

    Lambda is now supported in C++ 0x but not in C++/CLI. It means we are not able to use C++ lambda to define delegates in ref class. This makes using .Net libraries like Task<T> and System::Linq a very tedious work.

    165 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 →
  4. make it possible to hide the Extern Dependencies Directory in C++ project

    for most of the c++ developers, the Extern Dependencies Directory is useless, is there any way to hide it?

    0 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. Make Visual C++ debugger recognize overloaded operators (especially -> and * because of smart pointers)

    With the introduction of smart pointers a debugging experience for C++ projects is totally hampered as the debugger does not recognize overloaded -> and * operators. If I, for example, have code like this

    struct S
    {
    int x = 1;
    };
    ...
    unique_ptr<S> s(new S());
    s->x = 5;

    then when having mouse over that x in s->x I don't see a tooltip displaying the value (being equal to one from constructor). Also putting s->x in a watch window does not help, I have either put the mouse above s and make two clicks to see the x (and then…

    13 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 →
  6. 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 →
  7. MSVC team: Do the same stunt as what the .NET team has done with Roslyn and rewrite your compiler.

    Use C++. Use an AST. Make a public API to use that AST, among other compiler capabilities. OPEN SOURCE IT!

    - Rewrite because we feel that you can't do much with all the legacy cruft in your current codebase.
    - Use C++ because current codebase is has lots of stuff written in C. *It's a C++ compiler after all.*
    - Create public API. CaaS or something. Like Roslyn. Like clang, LLVM. Even GCC seems to up their efforts in this area. You don't even need to outsource C++ Intellisense to some other company!
    - Open source because there's really no…

    28 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 →
  8. Support devirtualization at least some of virtual calls

    Support full devirtualization for types declared in an anonymous namespace, in local scope or when used the final specifier. Also, warnings similar GCC -Wsuggest-final-types and -Wsuggest-final-methods.

    http://hubicka.blogspot.ca/2014/08/devirtualization-in-c-part-5-asking.html

    16 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 →
  9. Refactor Support: Extract header file (or declaration) from C++ class definition

    It would be really useful if we could have a feature that takes a class definition and generates a class declaration that can be moved (optionally) into a header file.

    I first like to design my class locally where I'm using it. This I typically done in a CPP file and I then design the whole class with the definition. Later, I decide that this class is good enough to be shared and I would then really like to be able to refactor definition splitting it into declaration and definition.

    4 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 →
  10. warn_unused_result attribute

    Add the possibility to mark functions/methods with an attribute that creates a compiler warning if its result is unused by the caller.

    This allows to write much cleaner and safer code.

    Clang or GCC offer this possibility with the following attributes:

    [[gnu::warn_unused_result]]

    __attribute__((warn_unused_result))

    22 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. Allow C++ makefile projects to compile single files

    With normal Visual C++ projects, there's an option in the build menu to compile an individual file. This can be very useful for many reasons I shan't go into here.

    When using makefile projects, this option can't be used - building is limited to the 'build', 'rebuild' and 'clean' commands that can be specified in the project options.

    I would like there to be another 'compile file' command which can call the external build tool with the file path as an argument, or perhaps that file path could be substituted into the command somehow.

    19 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 →
  12. Implement more C++ TS (Filesystem is great!, now Concepts!!) You get the edge over gcc and clang

    Technical specifications greatly improve c++ usability. Filesystem is amazing. You can surpass gcc and clang in implementation.
    C++ needs a bigger and bigger library

    25 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 →
  13. Support GCC's __INCLUDE_LEVEL__ preprocessor macro

    GCC's __INCLUDE_LEVEL__ macro gives you the current nesting level of the include file you're in.

    In my project, I have internal header files intended only to be included in source files and not in any header files so I'm using:

    #if __INCLUDE_LEVEL__ != 1
    #error Don't include this file in a header file
    #endif

    as a sanity check. It would be nice if MSVC supported this.

    20 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 →
  14. Include in Visual Studio as standard, application templates (console, DLL, Windows, etc.) for both C and Assembly language projects.

    Due to an ever-increasing dislike of the widespread commercialization of "bloatware", there is a huge shift among programmers to move back toward the low-level language of assembly and the semi-low-level language of standard C. Visual Studio already allows for the creation of apps using either language, but does not include standard templates to do so like those it includes for C++, C#, Visual Basic, etc. And setting up Visual Studio to create applications in either language without the help of templates can be annoying and quite cumbersome. If Microsoft has a reason for attempting to divert programmers from using assembly…

    2 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 →
  15. to rewrite VS and Windows SDK header files appropriately so they don't produce humongous amount of warnings during compilation with /Wall

    Whoever is responsible for writing, modifying VS and Windows SDK header files should make appropriate corrections in the code they contain so the header files adhere to good coding practices and therefore compile smoothly. The number of warnings these header files produce during compilation is extremely alarming and it explicitly forces user-code to be clumsy-written. When would we, the users, finally be able to write warning-free code as good coding-practices suggest in about every C++ programming course book on the market? What we have now just doesn't make any sense. Please correct this hideousness and embarrassment ASAP. Thanks.

    30 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 →
  16. 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 →
  17. 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 →
  18. Allow precompiled headers to be shared between projects

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351048/allow-precompiled-headers-to-be-shared-between-pro.html
    In Visual Studio 2008 and earlier, I believe you could (by an unsupported method) allow one project to generate a precompiled header which other projects could then use. But I understand this is not possible, or only works in limited ways in VS 2010 and later.

    Please add official support for allowing a precompiled header to be shared between projects.

    As a nice to have it would also be ideal if more than one precompiled header could be used by a project so…

    564 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    24 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  19. Full feature C++ Code Maps.

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351282/full-feature-c-code-maps.html
    What we get is showed in the first picture,what we want is shown in the second.

    5 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. CodeLens for C++

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351131/codelens-for-c.html
    Make CodeLens available for C++ projects. One cannot deny that C++ is one of the most widely used programming language in the world, and very code intensive software is written in C++, e.g. operating systems or games. Visual Studio should provide CodeLens for C++, so that large groups of developers have a better possibility to review and test code.

    324 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 →

    Hello and thank you for the suggestion. We plan to eventually support CodeLens for C++. How that will work remains under discussion, as there are some performance implications to consider, particularly for the “Find All References” aspect of the feature. Since we require running candidates through the IntelliSense compiler to successfully validate references, C++ code by its nature is more tricky and slower to build than .NET code, and the existing CodeLens experience requires all this to work in real-time on multiple functions at once, it’s something we need to be careful with.

    We will keep you posted once we have a more definitive plan. Thank you for helping us build a better Visual Studio!

Feedback and Knowledge Base