Thread: I need some opinions about VC++ vs C++

  1. #1
    The Autodidact Dante Wingates's Avatar
    Join Date
    Apr 2010
    Location
    Valhalla
    Posts
    56

    Arrow I need some opinions about VC++ vs C++

    Hi,

    Im not sure if this is the right place to ask, but anyway I wanted some opinions about vc++ vs c++... Are they the same language? I mean, is vc++ the same c++ I use everyday or is there any major difference? If so, could it be considered another language? Can I program in VC++ using the same programming style I do now? And the main question: if it is different in someway(which I believe makes it another language), is there any reason to use it instead of C#?

    Im familiar with C# and .NET framework, and it would be nice to write programs that use the .net framework and still do it in C++(my favourite language), but as Im not very familiar with VC++, I dont know how much difference there is, if its just the differences I've seen until now, or if it goes more deep and literally changes the language into something else.

  2. #2
    Registered User
    Join Date
    Oct 2008
    Posts
    1,262
    VC++ is an implementation of the language C++. So you can't compare the two: there's really nothing to compare.

    I assume your actual question would be: does VC++ implement C++ properly, so that I can use other C++ compilers as well?
    The answer to that is, well... There's a lot of bloated stuff in VC++ that is meaningless for other compilers. "#pragma", for instance. Also, many things that are accepted in VC++ are still illegal and not accepted by other compilers.
    But really, you shouldn't have any problem switching to another compiler if you've used VC++. You'll find out the differences soon enough.

  3. #3
    The Autodidact Dante Wingates's Avatar
    Join Date
    Apr 2010
    Location
    Valhalla
    Posts
    56
    I use GCC/G++ with Qt framework. I was thinking about giving VC++ a try, but Im not sure if its worth the time and effort since I believe it is better to use C# for .net applications than VC++ if I will have to "learn" it and/or my experience with C++ is not enough

  4. #4
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Quote Originally Posted by EVOEx View Post
    There's a lot of bloated stuff in VC++ that is meaningless for other compilers. "#pragma", for instance.
    #pragma is part of the C++ standard. Particular pragmas, also by definition in the standard, are implementation defined. The intent is that pragmas provide a compiler-specific means of controlling various compiler-specific behaviours.
    Quote Originally Posted by EVOEx View Post
    Also, many things that are accepted in VC++ are still illegal and not accepted by other compilers.
    But really, you shouldn't have any problem switching to another compiler if you've used VC++. You'll find out the differences soon enough.
    I wouldn't quite go that far.

    Older versions of VC++ were notable for aggressive non-compliance with the standard. The compliance of recent versions of VC++ is significantly better, as Microsoft made a deliberate strategic decision to improve standard compliance. It's not 100% perfect, but is now certainly better than in the past.

    What is true is that VC++ supports several extensions - both language features and library features - that are specific to Windows. There is actually nothing wrong with that. Most vendor's compilers and libraries support some extensions. However, if a programmer uses extensions that is specific to a vendor, that programmer will face challenges migrating to other compilers.

    The choice of compiler really depends on what the programmer is doing - there is no C++ compiler that is perfectly suited to every development task, as there are always relative strengths and weaknesses. VC++ is eminently suitable for development under windows, which is presumably it's primary purpose. It is less suitable for other types of development.

    Oh - Qt can be used with Microsoft's development tools (at least, the commercial/paid-for versions - I've never used the free ones). Like any third-party library with any compiler, some effort is required to configure and use it, but it is possible.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  5. #5
    Registered User
    Join Date
    Oct 2008
    Posts
    1,262
    @grumpy: Yes, I know #pragma is standard. But I've never seen it used in any compiler other than VC++. And I've seen it used a LOT in VC++.

    Also, I've only used older versions of VC++, so that might explain why I consider VC++ so standard uncompliant .

  6. #6
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Also, if you want to use .NET with C++, you might be interested in C++/CLI (yes, it's the name of a different standardized language).
    Last edited by laserlight; 06-23-2010 at 03:05 PM.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  7. #7
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Quote Originally Posted by EVOEx View Post
    @grumpy: Yes, I know #pragma is standard. But I've never seen it used in any compiler other than VC++. And I've seen it used a LOT in VC++.
    One thing is that a lot of the Microsoft documentation gives examples using pragmas (and use void main(), but that's another story).

    In practice, I don't recall using any compiler that does not support a pragma or three. The list of pragmas supported by gcc, for example, is here.

    Quote Originally Posted by EVOEx View Post
    Also, I've only used older versions of VC++, so that might explain why I consider VC++ so standard uncompliant .
    Probably so. I was vocal with my criticism of Microsoft's lack of compliance to the C++ standard for quite a few years. The deficiencies in (the 32 bit) VC++ version 5 and earlier were sort-of forgivable as that version was released while the C++ standard was in draft and Microsoft was attempting to influence evolution of the standard. But some of the versions after 6.0 ..... <shudder> However, recent versions have improved.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  8. #8
    System Novice siavoshkc's Avatar
    Join Date
    Jan 2006
    Location
    Tehran
    Posts
    1,246
    VC++ supports another language named C++\CLI. Its another story. The compiler is the same for C++ and C++/CLI. It compiles code into C++\CLI if set so by switches. But if not its like any other C++/C compiler. With some specific features and disadvantages.
    Learn C++ (C++ Books, C Books, FAQ, Forum Search)
    Code painter latest version on sourceforge DOWNLOAD NOW!
    Download FSB Data Integrity Tester.
    Siavosh K C

  9. #9
    Registered User
    Join Date
    Mar 2010
    Posts
    109
    If you want to use .NET then, yes, C# is a better tool. It was created for that purpose.

    The best thing about VC++ is the IDE. Visual Studio is pretty powerful.

  10. #10
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Better tool than...?
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  11. #11
    Registered User
    Join Date
    Mar 2010
    Posts
    109
    Quote Originally Posted by Elysia View Post
    Better tool than...?
    Than C++. That's what he was comparing.

  12. #12
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    C++ is not a dotCrap language and so cannot use the dotCrap framework. C++/CLI, OTOH, can. But it is an entirely different language and is not inferior to C#. In fact, it allows you to get the best of both worlds without any painful marshaling or stuff.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  13. #13
    Registered User
    Join Date
    Mar 2010
    Posts
    109
    Yes, I am aware of what C++/CLI is. I was using his term. Either way, I would still say that C# is better for .NET.

  14. #14
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    That is your private opinion. It is not a fact. So long as that is made clear, that is fine.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  15. #15
    Registered User
    Join Date
    Mar 2010
    Posts
    109
    I believe that's what he was asking for: opinions.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. VC 2005 win 32 app error.
    By geek@02 in forum Windows Programming
    Replies: 15
    Last Post: 12-21-2009, 02:17 PM
  2. strcpy_s exception in VC 2005
    By geek@02 in forum Windows Programming
    Replies: 3
    Last Post: 08-07-2009, 08:35 AM
  3. makefile exported by vc 6.0 doesn't work
    By wow in forum Windows Programming
    Replies: 7
    Last Post: 03-24-2006, 04:20 PM
  4. Can't compile this with VC 6.0
    By uriel2013 in forum C++ Programming
    Replies: 4
    Last Post: 05-31-2003, 07:43 PM
  5. Why VC?
    By Unregistered in forum Windows Programming
    Replies: 1
    Last Post: 04-15-2002, 05:24 AM