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. 1 vote
    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 →
  2. A new Single Step Debugging-Function [Step BACK]

    We can only make forward Single Steps

    But if we do one step to much by mistake,
    we must DEBUG the completely CODE from Begin again!!!!!!
    UPDATE [Single Step BACK]

    1 vote
    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 →
  3. Improve breakpoint conditional expressions

    When adding a debug breakpoint with a conditional expression that involves a function, it is denied with the message "This expression has side effects and will not be evaluated."

    The problem is that this error appears no matter if the function has side effects or not. I'd like to request better detection of expressions that actually doesn't have any side effects. It would also be great if it was possible to ignore such false errors and force the expression to be evaluated.

    For example, I wanted to trigger a breakpoint when two objects were equal with a conditional expression like…

    1 vote
    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 →
  4. Make project property pages non-modal

    It's often a pain and productivity loss that you can't interact with anything else when these property pages are open. Especially since when you re-open them, you often need to navigate into the deep settings heirarchy contained within.

    Often when discovering include dependencies you want to be able to interact with the code while leaving the property pages open.

    1 vote
    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. Please outline any restrictions on mixing code built in C++14 mode with code built in C++17 or C++Latest modes.

    The issue of migrating an old codebase to C++17 or C++Latest may require incremental changes over a period of time.

    During the transition, it was not clear to me whether I could continue to compile some code in C++14 mode, while "upgrading" other libraries to C++17 or even C++Latest.

    I'm referring to restrictions in the C++ ABI or C++ Runtime Libraries that would prevent combinations of DLLs and/or static libraries built in the various C++ modes to all coexist within one executable.

    This is the kind of thing that should be documented, if it is not already.

    1 vote
    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 →
  6. Добавить проверку орфографии для комментариев в коде как в MS Word

    Сейчас код представляет часто собой сборище граматических ошибок. Было бы прекрасно иметь встроенную проверку орфографии в момент написания коментариев. Грамотные комментарии - это красота кода. Я думаю миллионам было бы полезно эта функция.

    1 vote
    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. VS 2017 - MSBuild of C++ DLL with version information (resource) is not functional (fatal error LNK1158: cannot run 'cvtres.exe')

    I have the following problem with latest Visual Studio 2017/latest Windows 10 update. I use Visual Studio 2017 Professional, but a collegue of mine has the same problem with Visual Studio 2017 Community Edition.

    Above the steps to reproduce:

    1) Create a Visual studio Project for a C++ DLL (and related solution), for example dll1Prova

    2) Add a resource file (file with ".rc" extension) with version information

    3) Save all files and compile. Compilation is good, and all seems functional

    4) Then with MSBuild I try to build the solution with the following commands (from Command Prompt):

    set VisualStudioVersion=15.0
    set…

    1 vote
    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 →
  8. MFC中添加对ID的检测

    多个窗口间也不能存在相同的ID,在Resource.h文件中进行检查

    1 vote
    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 →
  9. Support the #include_next preprocessor directive

    Add support for the #include_next preprocessor directive to Visual C++. This is a GCC extension (which clang also implements), and porting code that uses it to VC++ is VERY DIFFICULT. There is just no good way to simulate it using existing VC++ features.

    This idea was previously submitted and closed without explanation or action...

    https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/6550065-support-the-include-next-preprocessor-directive

    9 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. add more go to definition/declaration and find all reference options

    Find All References Annoyance:
    Only finds the functions called in the code that has the same signature I "right clicked -> Find all references"...

    Which is anoying since it is mostly the case I want to find every reference of the function regardless of signature.

    Suggestion, add another Find All References in the right click menu that does not care of the function signature.

    Goto Definition/Declaration Anoyance:
    When I change the function defintionI would like to go to the function declaration (and vice versa) to change it there too. unfortunatly it's not possible...

    and then I would like to find…

    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 →
  11. Better code formatting for lambdas in C++

    It would be nice to have better code formatting for lambda functions in C++. For example:

    const auto [var1, var2] = Function(var3, var4, var5,
    [](const int var6) // Make [ align w. var3 above
    {
    // Make { align with [ above
    // indent code here as usual
    },
    [](const int var7)
    {
    // Make { align with [ above
    // indent code here as usual
    });

    Right now the lambda bodies are aligned to the left with the const keyword in the editor when using automatic formatting, when they should align with the lambda opening bracket in my opinion.

    1 vote
    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. Add a [[nounwind]] attribute for class and struct (or __declspec(nounwind) if you prefer)

    Simple classes or structs that do not require unwinding prevent the use of __try and __finally. If a class or struct could be marked as [[nounwind]] then the compiler could kept out of the unwind code and allow certain other language constructs to be used.

    3 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. Provide an option to stop closing /**/ comments

    When i want to comment a block of code, each time I start on a blank line above the block, a */ is inserted after I type /*. This is very annoying and there is no option to prevent this behavior. Could you please provide one ?

    3 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 →
  14. Infer extensionless header language from "-*- C++ -*-"

    A lot of libraries, (including the standard one), comes with extensionless headers. There is convention (for ViM, Emacs, …) to put a comment tag
    into the first line indicating what language it is.

    For example, for C++, the comment looks like:

    // -*- C++ -*-

    Suggestion is for extensionless files, scan the first line for the presence of the language tag and assume suggsted language for the header.

    4 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. Give option to use '/' as a default name separator in #include

    When you use #include <a/b/c> style includes. Visual Studio is very helpful in finishing the name with '\' and opening completion suggestions for the next name.

    Since, a lot of projects I work on are cross-plat, I have to manually undo '\' and put '/' separators in.

    Since on Windows both are accepted, could we add an option which style slash is used for include name completions

    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 →
  16. Make all libraries and code included with Visual C++ compile with /Za enabled

    I would like to see all the header files included with Visual C++ able to be compiled with /Za enabled. Or provide a way to compile my code with /Za (to avoid using Microsoft extensions) but compile the Microsoft code (e.g. winapi headers) without /Za and without the errors like C2467, C2133 and C4309.

    1 vote
    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 →
  17. Support compile_commands.json

    CppProperties.json only allows setting of include paths and compile arguments on a target-wide basis. Different translation units need different settings. The community is standardizing on compile_commands.json to provide this information. VS needs a way for me to specify a compile_commands.json to use during Open Folder projects (via CppProperties.json perhaps) so that it can pick up proper include paths and compile flags on a per translation unit basis.

    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 →
  18. Add C++17 support for the LLVM-vs2014 toolset

    The clang-cl compiler frontend version 6 (recently released) supports the /std:c++17 argument, however this option is still hidden in project settings.

    While some features are working when manually adding this argument (such as std::wstring::data()), some major C++17 headers (such as optional) are not in the include path that is passed to the compiler.

    Please expose and support the language version project setting for this platform and provide the missing C++17 headers to the compiler.

    9 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 →
  19. A defect.

    建立对象调用函数,函数不带括号。

    1 vote
    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 →
  20. Enable Block Folding from Closing Brace

    Currently code folding provides a "button" only on the top of each scoping block. it would be very handy to have a similar button at the end of each scope at the closing brace.
    other IDEs have a small up-pointing "arrow" button to indicate close-upwards.

    1 vote
    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 →

Feedback and Knowledge Base