Which features of C# 7.0 are available in VS "15" Preview? - visual-studio-2017

As you know in build 2016 conference, next version of visual studio was introduced as Visual Studio Enterprise “15” Preview. I downloaded ISO of this preview to check out C# 7.0 new features. As was said in C# presentation session on build conference, I added __DEMO__ and __DEMO_EXPERIMENTAL__ conditional compilation symbols to my project. Now I got these features working:
Local Functions
Digit Separators
Binary Literals
Pattern Matching
But these two do not working and build fails with errors:
Ref Returns and Ref Locals
Tuple Literal Syntax
Can you help me why I can not test these two last feature?

As of today, April 12, 2016 # 12:16 PM (CDT) the tuple feature is in its "prototyping" phase and not yet available. This is regardless of the conditional compilation symbols. Please check out the Roslyn language feature status for details on C# 7.0.
Actually, in looking more closely at the list -- it seems as though pattern matching is in "prototyping" too, which means I must stand corrected. If that is the case, then you should be able to pull down the Roslyn compiler locally from the tuple branch found here. Then use this build to compile your experimental code as defined here.

Visual Studio 15 Preview will only let you play with some of the proposed features of C# 7.0, more specifically:
local functions
digit separators
binary literals
ref returns
and pattern matching
Basically the stuff you already mentioned. Here is the source. It's unclear when the others will be made available.

Related

How to automatically generate comments in Visual Studio 2017 and C++?

I'm wondering if there is a functionality in Visual Studio 2017 to automatically generate documentation comments for parameters, return value, etc. in C++.
In Eclipse, Java, I start typing /** above a method and the rest is generated.
As someone answered here this functionality exists for C#, but I can't find any hints for C++.
That's one of the things where C++ tooling really falls behind. For VS you will need to use some third party extension, such as CppTripleSlash or CppDoxyComplete. Both are kinda crappy though (no template support, no exception spec support, no attributes support, no SAL support, etc.).

LLVM 3.4 integration with VS 2012

I have read online documentations and built LLVM using Cmake and visual studio using Getting Started with the LLVM System using Microsoft Visual Studio. I could not find how to use the LLVM tooolchain on an existing visual studio project. I am new to this environment and would appreciate any help.
EDIT 1 : I am contributing to a project, where I am required to build an Interpreter. The project restricts me to code in VS.
Here are the errors when I try to integrate LLVM and VS, I must be doing something terribly wrong LLVM compilation errors on VS 2012
EDIT 2: I am unclear as to how should we integrate LLVM in an existing VS project after a successful LLVM build (and installation on system).
EDIT 3: I aim to develop my own language utilizing clang/llvm. I cant figure out how to do this sitting in the VS enironment.
The instructions you have followed are not supposed to produce a "plug-in replacement for Visual Studio's provided compiler", but a way to, generally, build LLVM+CLANG - and of course, unless you are wanting to spend a lot of work [1], to build a compiler written in C++, you need an existing C++ compiler - and the instructions show how to do that with Visual Studio. You then have a clang and clang++ compiler and tools on your system, but it's not meant for "use it within Visual Studio".
From what I can tell from past experience, the Visual Studio compiler is not trivially replaceable, but you can of course use a Makefile Project to compile anything in any way you like.
This discussion from MS does provide another solution, but again, it's not a "instant plug in" solution:
http://social.msdn.microsoft.com/forums/vstudio/en-US/b9610ed2-e8ae-48c9-864c-e3d12af97b05/support-an-alternative-compiler
Some further googling shows this up:
https://github.com/ishani/ClangVSx
I have no idea if that works well or not - it seems to "only" support clang 3.3, where the current release is 3.4 and the "latest" is pre-3.5. I doubt there's a huge amount of difference, but I'm also not sure that there's "no difference".
[1] You can "bootstrap" a compiler from nothing, but it's really quite a lot of work writing a small compiler that can do a subset of the language, repeat this several times, to eventually compile the actual compiler in a more full compiler - and LLVM is not even nearly designed for that in the first place.

Is there a way to manually expand variadic templates?

Visual Studio does not currently support Variadic Templates and the official word is that VS2012 still will not support them.
I've ported my open source project to use C++11 and Variadic Templates are a huge part of that port. This means I can support clang++ 3.1 and g++ 4.5 but not Visual Studio.
So, my question is, does there exist a tool which will let me manually expand my variadic templates (to some N arguments) and check those into source control so that I can have stop-gap support for VisualStudio?
I recently wrote a tool to do exactly this (with the new VStudio 2012 C++ compiler not having support, I don't expect to get variadic templates for another year)
It's very basic, but I thought since there might be interest I might as well publish it.
You can download it from my website here: http://mlvdmeide.com/varexp

Is there any way to make Google testing framework work with Visual Studio 6?

I tried to follow this question and answers but have gotten lots of compilation errors like this.
error C2182: '__formal' : illegal use of type 'void'
Is there anybody who is successfully using VS 6.0 with Google Testing?
Some time ago, someone proposed a patch for Google Test to support VC6. That patch was ultimately rejected in the trunk because it made it harder to support the library. But the patched source was put in a branch in Subversion for people who need it. There it sits, unsupported.
But because it's not supported, there has been no backports from the trunk since it was branched at version 1.3. But if you really need it and don't mind missing all the features added since then, you can grab it from there.
Probably not. VS 6.0 isn't compatible with C++03, so not much C++ will work on it. You'll most likely need at least VS 7.1 (2003) or VS 8.0 (2005).

How to find what's new in VC++ v10?

Googling nor binging "VC++ What's new C++0x" gives me nothing that tells me what is new.Is there an official page at msdn or something similiar that contains the information for VC++ 10? I've seen such for C#,there must be one for what I'd enjoy to read.
If not, please list the new features available in Visual Studio 2010 for VC++.
The Visual C++ Team Blog has frequent articles about what's new for VC++ in Studio 2010. It's not an exhaustive list, but does detail many of the new additions.
There's also an MS site which lists some of whats new.
Wikipedia's Visual C++ page has a recap, which I imagine will be updated frequently as we get closer to the release:
Visual C++ 2010 (known also as Visual
C++ 10.0) is planned for release on
April 12, 2010. It is currently in
development, and available publicly
only in the form of beta version, and
available on MSDN as a release
candidate. The Visual C++ team is
considering using a SQL Server Compact
database to store information about
the source code, including
IntelliSense information, for better
IntelliSense and code-completion
support. This version adds a
modern C++ parallel computing library
called the Parallel Patterns Library,
partial support for C++0x,
significantly improved IntelliSense,
and performance improvements to both
the compiler and generated code.
This version is built around .NET 4.0,
but supports compiling to machine
code. The partial C++0x support in
VC10 consists of 6 compiler features
(lambdas, rvalue references, auto,
decltype, static_assert, nullptr), and
some library features (e.g. moving the
TR1 components from std::tr1 namespace
directly to std namespace). Variadic
templates were also considered, but
delayed until some future version due
to lower priority which stemmed from
the fact that unlike other
costly-to-implement features in VC10
(lambda, rvalue references), this one
would benefit rather the minority of
library writers than the majority of
compiler end users.
Beta 2 version number: 16.00.21003.01 (this is the version of compiler; the IDE itself has version number 16.00.21006.01)
RC version number: 16.00.30128.01