[try Beta version]
Not logged in

 
Visual Studio 2013? Your Thoughts

Dec 30, 2013 at 10:34pm
closed account (13bSLyTq)
Hi,

I got VS2013 Ultimate (Full Version), and not to be negative or sound too arrogant but VS2013 is not too good in the sense that:

- VS2013 is same as VS2012 in almost every way

- VS2013 has about 6-15 new C++ features (MAYBE not even that)

The other thing I really got annoyed about is the "sign in" feature, Not to sound paranoid or overprotective but since Edward Snowden leaked NSA details about large corporations giving it's information to NSA. I cannot trust Microsoft to keep my Projects in their Server which is regularly "patroled" by NSA.

Not to mention that, MC are trying to make all their product in the cloud. It really annoys me as we cannot just buy and use but rather subscribe for many of the features which should be in the VS2013.

Anyway VS2013 UI either is not different to VS2012 except from the ICONS and such being coloured. But I suspect this must have taken just about a 5 or 6 days with the size of their employees working on VS2013. To be honest they should've just put VS2013 as a Update rather than a whole new VS product.

TD;LR

VS2013 is basically the same as VS2012 with some small improvements.

What do you think?
Dec 30, 2013 at 10:43pm
I'm fine with MinGW 4.8.2 and VS2010.

Because in the end, we just need a C++11 compiler and the standard C++ libraries.
Dec 30, 2013 at 10:56pm
I wonder what these 6-15 new C++ features are. Are they standard compliance improvements, language extensions, or additions to the WinAPI?

-Albatross
Dec 30, 2013 at 11:08pm
For the things we will be caring about:

Supports the following ISO C++11 language features:
Default template arguments for function templates.
Delegating constructors.
Explicit conversion operators.
Initializer lists and uniform initialization.
Raw string literals.
Variadic templates.
rvalue/lvalue Reference Casts. With rvalue references, C++11 can clearly distinguish between lvalues and rvalues. Previously. the Visual C++ compiler did not provide this in specific casting scenarios. A new compiler option, /Zc:rvalueCast, has been added to make the compiler conformant with the C++ Language Working Paper(see section 5.4, [expr.cast]/1).

C99 functionality added to <math.h>.
Complex math functions in new header, <complex.h>.
Integer type support in new header, <inttypes.h>; includes format string support for "hh".
Support for variable argument scanf forms in <stdio.h>. C99 variants of vscanf, strtoll, vwscanf/wcstoll, isblank/iswblank implemented.
New conversion support for long long and long double in <stdlib.h>.

Support for the C++11 explicit conversion operators, initializer lists, scoped enums, and variadic templates.
All containers now support the C++11 fine-grained element requirements.
Support for these C++14 features:
"Transparent operator functors" less<>, greater<>, plus<>, multiplies<>, and so on.
make_unique<T>(args...) and make_unique<T[]>(n)
cbegin()/cend(), rbegin()/rend(), and crbegin()/crend() non-member functions.
<atomic> received numerous performance enhancements.
<type_traits> received major stabilization and code fixes.

Auto-Vectorizer now recognizes and optimizes more C++ patterns to make your code run faster.
ARM platform and Atom micro-architecture code quality improvements.
__vectorcall calling convention is added. Pass vector type arguments by using the __vectorcall calling convention to use vector registers.
New Linker Options. The /Gw (compiler) and /Gy (assembler) switches enable linker optimizations to produce leaner binaries.

Brace Completion. C++ code now auto-completes the closing characters that correspond to these opening characters:
{ (curly brace)
[ (square bracket)
( (parentheses)
' (single quote)
" (double quote)
Additional C++ Auto-completion Features.
Adds semicolon for class types.
Completes parentheses for raw string literals.
Completes multi-line comments (/* */)


So, they didn't end the C++11 support and they're already into the C++14 features?

Or did they finish C++11 support?
Dec 30, 2013 at 11:17pm
closed account (N36fSL3A)
What about C11?
Dec 30, 2013 at 11:19pm
I don't think they did finish C++11 support.
http://msdn.microsoft.com/en-us/library/hh567368.aspx

The following are either incomplete or unsupported in VS2013.
*ref-qualifiers
*Expression SFINAE
*Attributes
*constexpr
*Alignment
*Inheriting constructors
*Unicode string literals
*Universal character names in literals
*User-defined literals
*Extended sizeof
*Inline namespaces
*Unrestricted unions
*noexcept


...and then some.

EDIT: Removed char16_t/char32_t as although they were listed as unimplemented, apparently they work anyway. Strangeness.

-Albatross
Last edited on Dec 31, 2013 at 1:23am
Dec 31, 2013 at 12:01am
closed account (13bSLyTq)
Maybe, this may be slightly bigger but I would have loved it if they had actually added something we all could use daily. Like a new API.

I would love a P2P API similar to P2P in C#.
Dec 31, 2013 at 12:02am
closed account (3qX21hU5)
http://blogs.msdn.com/b/vcblog/archive/2013/06/28/c-11-14-stl-features-fixes-and-breaking-changes-in-vs-2013.aspx

Seems a bit more then 6-15 changes...

So, they didn't end the C++11 support and they're already into the C++14 features?

Or did they finish C++11 support?


At the bottom of link I posted he kind of answers this.

Q1: Why are you implementing C++14 Standard Library features when you haven't finished the C++11 Core Language yet?



A1: That's a good question with a simple answer. Our compiler team is well aware of the C++11 Core Language features that remain to be implemented. What we've implemented here are C++14 Standard Library features. Compiler devs and library devs are not interchangeable - I couldn't implement major compiler features if my life depended on it (even static_assert would take me months to figure out), and I like to think the reverse is true, although rocket scientists are probably better at pizza delivery than pizza deliverers are at rocket science.



Q2: Fair enough, but you mentioned "C++14 generic lambdas" earlier. Why is your compiler team planning to implement any C++14 Core Language features before finishing all C++11 Core Language features?



A2: As Herb likes to say, "C++14 completes C++11". The compiler team is pursuing full C++14 conformance, and views all C++11 and C++14 features as a unified bucket of work items. They're prioritizing these features according to customer demand (including library demand) and implementation cost, so they can deliver the most valuable features as soon as possible. The priority of a feature isn't affected by when it was voted into the Working Paper. As a result, their post-2013-RTM conformance roadmap places highly valuable C++14 features (e.g. generic lambdas) before less valuable C++11 features (e.g. attributes). Again, please see Herb's announcement video/post for more information.
Last edited on Dec 31, 2013 at 12:02am
Dec 31, 2013 at 12:03am
@Albatross
VS2013 does support char16_t/char32_t
Dec 31, 2013 at 12:27am
I like to use 2010 visual studio because i learned c++ using it so i'm fluent in the features and am stubborn to change to something not needed (2013 version).
Dec 31, 2013 at 12:40am
@OrionMaster: Nah, that's basically like rewriting send/recv/connect.
It's in boost (asio), there's raknet for professional UDP networking... WGET for http... what else?
Dec 31, 2013 at 1:23am
@naraku9333
It's listed as unimplemented on their list that I linked to... but I'll take your word for it.

-Albatross
Dec 31, 2013 at 2:39am
I rather feel like a traitor to my roots, but since I switched to Clang, I've never looked back. Unfortunately, at the time, it was virtually impossible (at least for me) to integrate into the VS build system. I'll have to see if that's changed since then...I do miss all of the VS IDE features.
Last edited on Dec 31, 2013 at 2:40am
Dec 31, 2013 at 2:44am
@Luke Leber:
https://github.com/ishani/ClangVSx

Also why the username change?
Dec 31, 2013 at 2:53am
Mostly to follow suit with my Google account now that I'm re-acquainted with technology. I have some spare time to kill again, so I'm back to programming.
Dec 31, 2013 at 3:49am
The forums have a feature to let you rename existing accounts, I meant to ask why you created an entirely new account. But I am derailing the thread - oh well.
Last edited on Dec 31, 2013 at 3:49am
Dec 31, 2013 at 3:59am
Uh oh...I think I just lost the username "Luke Leber". After re-naming this account, I'm not able to rename my old one, as that username is taken.

And what's worse, I've just deprecated myself. I'm in a real pickle now.
Last edited on Dec 31, 2013 at 4:00am
Dec 31, 2013 at 4:26am
Maybe you can hypenate your old account? "Luke-Leber"? Maybe you can try contacting twicker.
Last edited on Dec 31, 2013 at 4:27am
Topic archived. No new replies allowed.