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
-
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 -
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++.
3 votes -
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 -
Statically link openmp (vcomp*.dll)
I want to statically link openmp. Currently I need to carry around a tiny vcomp110.dll (or vcomp100.dll/vcomp90.dll).
http://stackoverflow.com/questions/1634516/dependency-on-vcomp90-dll-in-vs2008-pro-openmp-projectThe Intel compiler supports statically linking OpenMP ("-openmp -static-intel"), or at least used to: http://software.intel.com/en-us/articles/openmp-static-library-deprecation-in-intelr-mkl-on-microsoft-windows .
3 votes -
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 -
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 -
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 -
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 -
make update VS2008 to compiler from 2012
make update VS2008 to compiler from 2012
3 votes -
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 -
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 -
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 -
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 -
Provide VSTO templates for VC++ projects
It would be nice to have Office AddIn templates for VC++.
3 votes -
mfc
Allow MFC to compile on Windows 8 ARM
3 votes -
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 -
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 -
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 -
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 -
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
- Don't see your idea?