What's "Visual C++" and is it different from C++?

I'm really confused and I think instead of making any assumptions it would be better to get it rectified with somebody who knows the answer to this.

I know Visual Studios has a C++ compiler, and in fact I use that. So I always thought Visual C++ referred to that.

But I'm doubtful about that from these two observations.

1) My Cs textbook (11th grade) has the following sentence as I quote: "Programming languages like assembly/C/C++/Visual C++/Pascal are used to develop system software."

And I quoted EXACTLY.

Do you see how "Visual C++" is used in this context? It certainly isn't talking about an IDE. It seems to be referring to Visual C++ as though it were a programming language on its own!

And I tried googling.. but I only got results for Visual C++ the IDE.
I'm not sure if it's a mistake on the editor, but how would he even come to writing Visual C++ if there isn't a programming language called Visual C++.

Okay so we take it as an editor mistake but what about THIS:
http://forums.codeguru.com/

That is a programming forum, okay, but it has TWO SEPARATE subforums. One of them is "Visual C++ Programming" and the other one is "C++ (Non Visual C++ Issues)"

So Visual C++ is definitely something. But what is it??


Edit: Visual C++ is also mentioned on another page of my textbook so it isn't an editor mistake.
Quote: "C/C++/Visual C++ are compiler dependent languages due to their inherent application nature."
Last edited on
C++ is a programming language defined by an international standard.

Visual C++ is Microsoft's implementation of the core language and libraries, embellished with Microsoft specific suite of libraries and tools; the highlight being a debugger that actually understands C++.

Visual Studio is their IDE (source code editor, build automation tools, debugger integration, and other bells and whistles).
There are books about C and C++ (by one author) that state "facts". There are websites with long erratas for those books explaining why and how each of those "facts" is horribly and utterly wrong. In other words, some book authors make a quick buck by typing convincing-looking nonsense.

The subtitles on that site:
Ask questions about Windows programming with Visual C++ and help others by answering their questions.

Ask or answer C and C++ questions not related to Visual C++. This includes Console programming, Linux programming, or general ANSI C++.

One forum for Microsoft API / IDE / Compiler. Other forum for "other uses of C++".

Visual C++ is different from Clang is different from GCC. They can all compile C++ code.
C++ is a programming language defined by an international standard.

Visual C++ is Microsoft's implementation of the core language and libraries, embellished with Microsoft specific suite of libraries and tools; the highlight being a debugger that actually understands C++.


But if Visual C++ conforms with the international standard precisely to be called a standard compiler then why refer to Visual C++ as though it were something different to C++?

What does Visual C++ have that the standard for C++ doesn't? I only know about that it has <conio.h>

One forum for Microsoft API / IDE / Compiler. Other forum for "other uses of C++".
Visual C++ is different from Clang is different from GCC. They can all compile C++ code.

Clang, GCC and Visual C++ need not compile the code in the same way, but don't they give the same output?

If it's also for compiler issues, what kind of issues can you run into while using a compiler? CodeGuru isn't an official forum from Microsoft so any legitimate complaints or issues with the compiler wouldn't be addressed at CodeGuru.

If it's for IDE issues also we can use the same argument as above.

So really the only proper questions you can ask is about Windows API. But they've named it Visual C++.. whyyyyy
Last edited on
> But if Visual C++ conforms with the international standard precisely to be called a standard
> compiler then why refer to Visual C++ as though it were something different to C++?

The C++ standard defines the language; but does not define how the language is to be implemented. So we have the GNU's implementation of C++ (popularly called g++/libstdc++), the LLVM's implementation of C++ (popularly called clang++/libc++), Microsoft's implementation of C++ (popularly called Visual C++).


> What does Visual C++ have that the standard for C++ doesn't?

For the core language, see https://docs.microsoft.com/en-us/cpp/cpp/cpp-language-reference?view=vs-2017
Extensions are listed under 'Microsoft-specific modifiers', 'Compiler COM support' and 'Microsoft Extentions'

To get an idea about other libraries and tools, see: https://visualstudio.microsoft.com/vs/features/cplusplus/
One more question.

My textbook has an example which uses the separator operator in this way:
sum = (a=5, b=10, a+b);

Is (,) ever used like that, for purposes other than declaring and passing arguments? Or is (,) just used for declarations and argument passing - and that the example is horrible?

What annoys me is that that's the only example they've given and they don't tell about it being used for declarations and passing arguments. They just say "used to link related expressions together". There are a lot of details like this which really confused me when I started learning earlier. My textbook is just horrrible.
The character comma is a separator when used in declarations (e.g. variable declarations, function parameter declarations, template declarations), but it's also an operator that can be used in normal expressions.
You can have some fun times with it:
1
2
3
4
5
6
void foo(int, int);
void foo(int);

void cheeky(){
    foo((3, 4)); //Which function am I calling? :-9
}

https://en.wikipedia.org/wiki/Comma_operator
Last edited on
The example is horrible. In general, try to avoid using comma as an operator.
Well, yes, that was my point. I wasn't trying to say "here, you should write code like this". The "fun" part was ironic.
Topic archived. No new replies allowed.