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. C++ CLI support for optional parameters for using in C#

    in C++ CLI is possible to define an optional parameter like

    public void ProvaDefaults([Optional, DefaultParameterValue(true)] bool value)

    but in this way the compiler don't use the DefaultParameterValue for setting the correct default value in the metadata (II.15.4.1.4 The .para m directive) that is visible in C#

    so in C# the deault parameter is visible but only with the system default value (in the sample reported it is false instead of the wanted true)

    4,042 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 →

    We don’t have plans to enhance the C++/CLI language to support more recent CLR functionality. The goal for C++/CLI remains to enable a thin interop layer between your native code and managed code in your Windows Desktop applications, not to fully replicate all CLR capabilities.

    Thank you for your understanding. We are returning your votes, please put them to good use!

    — Visual C++ Team

  2. C99 support

    Support missing C99 features in plain C - stdint.h, declaration in the middle of the block, struct initializers with labels. C99 support is 12 years too late already.

    1,133 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    55 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  3. Switch to Clang

    Why?

    Because it compiles code faster on large code bases.
    Because it is more C++11 compliant.
    Because it will be updated with fixes in a timely manner.
    Because it will require less of your maintenance.
    Because you can contribute back to it to make it even better.
    Because you can build tools out of it like Intellisense, static analysis, etc.
    Because MSFT can focus on Visual Studio UI and other elements that make it a nice IDE.
    Because this is what C++ developers would prefer (non-biased opinion here :P ).
    Because code portability is important in this platform diverse world.

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

    Thank you for the suggestion and the good discussion. There are a lot of great reasons expressed here for why switching to Clang would be a good or bad idea.

    We’ve made Clang available for use in Microsoft projects as a preview in the Clang/C2 project. We will not move away from the MSVC compiler toolset in the forseeable future.

  4. assembler

    Make inline asm in x64-bit projects.

    825 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 →
  5. Support OpenMP 3.0 or 3.1

    Version 3.0, released in May, 2008. Included in the new features, including tasks, better support for loop parallelism and nested parallelism. These new features are summarized in Appendix F of the OpenMP 3.0 specifications (http://www.openmp.org/mp-documents/spec30.pdf).

    Version 3.1 (http://www.openmp.org/mp-documents/OpenMP3.1.pdf) of the OpenMP specification was released July 9, 2011.

    284 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 →
  6. 249 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    declined  ·  18 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  7. Add support for OpenMP 4.5 to VC++

    This makes so much sense. OMP is brilliant.

    144 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    22 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  8. Automatic build numbering for c/c++ projects

    It would be nice to have a feature for automatic build numbering of projects (C/C++) that use *.rc file for file numbering. Currently you need to do it manually by yourself or you need to use pre-build event and call some custom batch script. I think the second option is the most used by many projects. But i believe it would be very helpful to have some kind of standard way for this task in the Visual Studio.

    106 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    declined  ·  3 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  9. Enhance visual studio native unit test framewoek

    I really think an out of the box unit test framwork C++ with visual studio is a great idea. The fact that the test framework integration allows other "providers" to run unit tests is another leap forward.

    However I have some concerns regarding the actual syntax of the native tests. In particular I thought the Assert class's AreEqual() and associated members were a little bit too simplistic.

    Other more mature frameworks (boost, google test, etc) supply a rich set of Assert functions/macros.

    I would really like to see MS add some more thought to the Assert class implementation, adding LessThan,…

    76 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    declined  ·  4 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  10. Allow Suppressing Update VC++ Compiler and Libraries Dialog in VS2012

    Because of Windows XP, we cannot upgrade all of our managed/unmanaged assemblies to .NET 4.5. I have completed all of the work so far to transition our team to VS2012 but one of the issues raised by a team member is the fact that opening a solution automatically displays the "Update VC++ Compiler and Libraries" dialog.

    We realize that clicking "Don't Update" will store a persisted value and you won't see that dialog again unless you either wipe out your sandbox or do a 'get latest' from TFS. Rather than hope nobody accidentally upgrades or possibly checks-in such changes, an…

    70 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    declined  ·  7 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  11. Make MFC MDI child windows capable of tearing-off from the parent window

    Similar to child windows tear-off in Visual Studio, make MFC MDI child windows (CMDIChildWndEx) capable of tearing-off from the parent window (CMDIFrameWndEx), like CDockablePane, so that they can be viewed on separate screens.

    61 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    declined  ·  1 comment  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  12. add assembler code syntax highlight

    add assembler code syntax highlight for disassembled code with (or without) source code
    while debugging C++ native applications.

    60 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    declined  ·  5 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  13. 51 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 →

    Because of our experience based implementing x86 inline assembler and the many correctness issues we’ve faced with it, we don’t recommend that developers use this approach and won’t be implementing this for new architectures.

    As a workaround, you can use the Microsoft Assembler for x64 (https://msdn.microsoft.com/en-us/library/hb5z4sxd.aspx) to create an .OBJ file that you can link against.

    -C++ Team

  14. Provide fully native C++ RAD GUI designer and library.

    The .NET architecture and runtime are fundamentally hostile to C++ language design. As a result C++ has to be tortured (managed C++, C++/CLI, C++/CX, ...) in order to fit this foreign model. I would suggest MS to separate C++ from .NET, define appropriate C++ ABI, and design a native C++11 library and RAD GUI designer not encumbered with .NET runtime or any of the .NET languages.

    43 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 →
  15. MFC GDI Direct2D legacy layer

    Implement a GDI to Direct2D mapping layer, which maps CDC, CPen etc... directly to Direct2D calls. That would accelerate all recompiled apps or custom controls without code changes (but recompilation of course). This way all MFC apps could benefit of fast and fluid graphics, rendering and animation. The effort can't be that big, as Direct2D supports all GDI primitives.

    39 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    declined  ·  0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
  16. 34 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 →
  17. 27 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 →
  18. C++ Realtime Compilation: compile as you type, in the background.

    Just like live search, live compile.
    Compiles the module as you type, in the background. Could wait for a semi-colon or closing curly bracers to compile.
    When changing header files, specially pre-compiled headers, should just do it once the file is saved.

    26 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 →
  19. Add support for Windows 8.1 per-monitor-DPI-aware into the entire MFC framework

    MFC should be extended for the per-monitor-DPI-awareness capabilities of Windows 8.1 to handle the messages, provide a graphics scaling resource, adding in the required DPI scalers and tracking into the CWnd object heirarchy, and handle the DPI changes on a per-monitor basis for the custom drawing themes. Support for use of full-alpha ICO rendering for toolbar items needs to be done. And all custom controls (toolbars) should be extended to allow for alternate metrics, and use of GDI and graphic pools to avoid creating duplicate resources when an app spans multiple monitors.

    20 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. Add ability to write and run tests for C++ native projects (using WinUnit for example)

    Add ability to write and run tests for C++ native projects (using WinUnit for example)

    18 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    declined  ·  1 comment  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
← Previous 1 3 4

Feedback and Knowledge Base