Visual Studio

Welcome to the Visual Studio UserVoice site. Let us know what you would like to see in future versions of the Visual Studio suite of products. This site is for suggestions and ideas. If you need to file a bug, visit the Visual Studio Connect site: http://connect.microsoft.com/visualstudio.

ASP.NET Runtime/Web Tooling suggestions have moved! All your ideas, including your votes, have been transferred and are searchable in the ASP.Net Uservoice forum. Please submit any new ASP.NET Runtime/Web Tooling suggestions, or vote on existing suggestions by going to http://aspnet.uservoice.com.

We look forward to hearing from you!

Thanks – Deon Herbert
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 vote and comment on it.

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

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

  • Hot ideas
  • Top ideas
  • New ideas
  1. Faster C/C++ linker

    The project I'm currently working on takes multiple minutes to link for Windows/Xbox 360, whereas the PlayStation 3 version takes less than 10 seconds to link the exact same code.
    My suggestion is to look at why the Visual C++ linker is so much slower, and to make the required changes to bring the speed up to par.

    3 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
    • Pex for Visual C++

      Pex project had the potential to be a great too and a life saver.. but again it was sort of lost in the wild even for .Net after VS2010. It was a great tool to test the code and code coverage and faults. I wish they could integrate the Pex to Visual C++.

      http://research.microsoft.com/en-us/projects/pex/

      3 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
      • print compiletime / linktime performace information

        Idea: Print which operation or which files took the most compie and or link time, for example "top 10".

        Compile and Linktime is really a problem in unmanaged code. You can argue that I have to refactor my code, to make sure no unneded includes being made. BUT such actions are costly and have to be done over and over again. So it would be great to know what exactly has the biggest ROI.

        3 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
        • 3 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
          • Port the Visual Studio 2012 C++ compiler and linker back to Visual Studio 2008.

            Port the Visual Studio 2012 C++ compiler and linker back to Visual Studio 2008. Better yet, take VC++ 6.0, fix the project properties (which truly was dorky), add in the features of Visual Assist, and recompile in 64-bit.

            3 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
            • Extend C++ lambda expressions with auxiliary variables

              Auxiliary variables are useful for giving per instance scoped variables to the lambda and it's also the only way to move data inside the lambda. i.e. something like (notice the semi-colons):

              string str = "asdfasdfasdfasdfasdfasdf";
              string s2;

              [&; auto s = move(str); const size_t n = s.length()*4] {
              s2 += s;
              s2.resize(n, '!');
              }();

              cout << str << endl << s2 << endl;

              This example gets treated as if you wrote:

              struct gensym {
              string &s2;
              mutable string s;
              const size_t n;

              bleh(string &s2, const string &str) :
              s2(s2), s(move(str)), n(s.length()*4)
              {}

              void operator() const
              {
              s2 += s;
              s2.resize(n,…

              3 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                2 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
              • Add scope guard extensions to C and C++.

                The D language provides scope guard statements (http://dlang.org/statement.html#ScopeGuardStatement), which is a language-level implementation of C++'s RAII concept. It allows arbitrary code to run when the scope exits, either in normal code flow, exceptional code flow, or unconditionally. This has proved to be extremely useful in managing resources and transactions.

                In C++ this can be emulated somewhat simply (especially in C++11), but C has no mechanics to emulate it at all. The only extension that gets close is __finally, but this is largely unmaintainable in practice and less effective in improving clarity, distancing initialization from destruction. Adding this new…

                3 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                • Proposing new optimization switch with huge speed boost potential

                  Hi guys

                  I wana discuss proposed optimization step(optional switch?) to c++ compiller that would make old and new code in some cases order of magnitude faster by just pure recompilation. Since visual c++ compiller is closed source I am testing changes in CLang

                  ...After all those attempts to store anything via = without waste I think that compiller should do "placement new" transparently for us whenever he encounters = on movable object(just array case is more than enough). Instead of forcing us to implement zillion && operators that solve only heap side of problem. Deciding what kind of "this" object…

                  3 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                  • make update VS2008 to compiler from 2012

                    make update VS2008 to compiler from 2012

                    3 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                    • There must be support for converting a complete project developed in “C” language to “C++” or “C#”.

                      There must be support for converting a complete project developed in “C” language to “C++” or “C#”.
                      It should not be simple file name replacement but should have below:

                      1) All the “struct” definition would be moved to “class” definition.
                      2) New classes introduced for each “.C” code file, based on the user input.
                      3) All the global or static function would become methods of the classes ot might remain as it is based on the user choice.
                      4) Need to handle use of “function pointer” and moved to inheritance hierarchy. ***** very complicated.
                      I can suggest design for the…

                      3 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                      • return value optimization and debug

                        I hope return value optimization can be optionally turned on/off (or at least turned on) under Debug mode; Currently it is by default enabled under Release but no way to turn it on under Debug with the debug information viewable while debugging...

                        #include <vector>
                        std::vector<double> get(){
                        std::vector<double> a(10);
                        return a;
                        }

                        int main(){
                        std::vector<double> a = get();
                        return 0;
                        }

                        3 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                        • Please add a tutorial area for younger passionate software programmers so that they may be comfortable with the extensive coding in C++

                          On starting Visual C++ for the first time, the program should be accompanied by an optional tutorial window to those who are new to C++ and do not wish to join third-party institutions to learn the language. It should be able to express any syntax with applicable logic and at the end of a cetain topic of C++, give a complex program mainly based on the corresponding topic. Attaching a complete tutorial will be of immense help to young learners.

                          3 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                          • std::lower_bound for tree classes

                            It would be helpful if the standard C++ library had optimizations for std::lower_bound, std::find, std::upper_bound, std::equal_range, std::count, and std::erase for the tree-type classes: set, map, multiset, and multimap. This could be done in many ways, using overloads, or enable_if.
                            Also up for optimization is std::merge, std::remove_if, std::remove, std::reverse, std::unique, and std::sort for the std::list type.
                            I believe adding such optimizations would not be overly difficult, and increase performance of standard algorithms in these few corner cases, and I do not believe any of these optimizations happen today in any compiler.

                            3 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              6 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                            • Provide VSTO templates for VC++ projects

                              It would be nice to have Office AddIn templates for VC++.

                              3 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                              • mfc

                                Allow MFC to compile on Windows 8 ARM

                                3 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                                • non-SIMD fused multiply-accumulate intrinsics

                                  I want intrinsic functions like _mm_fmadd_f64(double, double, double), for use in non-SIMD code.

                                  Currently the only way to access FMA in non-SIMD code is to use _mm_set_sd() and _mm_cvtsd_f64(), which results not only in major code bloat but bad performance as _mm_set_sd() emits extra instructions to clear out the high double AND you need to call it 3 times.

                                  3 votes
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Support OpenMP with Profile-Guided Optimization (PGO)

                                    MSVC supports both OpenMP parallelism and PGO of parallel code, but not both at the same time. As a developer trying to write fast code (as most of us are), I find both OpenMP and PGO to be valuable tools, so let's get them playing together.

                                    3 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Macros as member of class (extension of macro) in C++

                                      Why?
                                      Compiler generating non identical code for inline (Is that bug?). For example:

                                      inline bool iszero(int a)
                                      {
                                      return (a == 0);
                                      }

                                      int main()
                                      {
                                      int a = 4;

                                      if(a == 0) // First
                                      a = 5;

                                      if(iszero(a)) // Second
                                      a = 5;

                                      ///...
                                      }
                                      In debug mode (with inlining) disasembled code look like:

                                      if(a == 0) // First
                                      a = 5;

                                      bool temp; // Second
                                      if(a == 0)
                                      temp = 0;
                                      else
                                      temp = 1;

                                      if(temp == 0)
                                      a = 5;

                                      Unwanted code... Macros perfectly work and do not generate unwanted code! But macros can not get access…

                                      3 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                                      • Support parameter info IntelliSense for structures

                                        When initializing large structures in place with {}, just as with calling large functions, its almost impossible to keep track of what value stands for what argument/parameter. For functions, the IDE luckily shows us automatically while entering the parameters which one is currently being entered, and it can be reviewed later via ctrl+shift+space.

                                        I wish the same were possible for structures...

                                        3 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          0 comments  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Make the throw specification visible in the intellisense (C++)

                                          There are actually two things here...
                                          1. I don't understand why VC++ is deviating from the standard here: the throw specification is ignored in VC++ (I mean, it's the standard, so why simply defy it?)
                                          2. If I want to tell that a function might throw an exception of class X, I must specify it in comments, because, if I simply append "throw (X)" to the function declaration, I cannot see it in intellisense - and what kind of intellisense is that where you need to look in the header file to understand the function??

                                          3 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            1 comment  ·  Languages - C++  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          Feedback and Knowledge Base