hi, i really dislike vc++ express.
what one compiler do u guys suggest tome for windows
Printable View
hi, i really dislike vc++ express.
what one compiler do u guys suggest tome for windows
I was going to suggest VC++ 2005 express ... :D
im using it now, and when i get an important exception it ignores it :S and debugging is really hard when after each line it says no source is available :S
well i cant compare as ive only used borland .. BCB6 it annoyed me at first as it has quite alot of borland compliant syntax, such as the uise of AnsiString oppose to string .. however string will also compile naturally. good thing i foudn with ansistring is that you can add lots of them together to form a filepath for instance ... well hey, not alot, but my two cents worth :)
have a look here
http://www.borland.com/us/products/cbuilder/index.html
I don't know exactly what you mean by VC++ ignoring important exceptions and I understand you have an aversion to anything non standard, but in the Win32 API there is some stuff that allows you to set the structure of exception handling such as SetUnhandledExceptionFilter.Quote:
Originally Posted by Mitsukai
http://msdn.microsoft.com/library/de...tionfilter.asp
Jason
I doubt any C++ exceptions are being 'ignored'. How do you substantiate this claim?Quote:
Originally Posted by Mitsukai
Jeff
I thought that VC++ was one of the best available Windows compilers for debugging tools (and, while VC++ 6 was really bad at ISO-compliance, latter versions are good).
It comes with a lot of debugging tools, so I doubt you'll find better easily.
I suspect that Visual studio is not the culprit. It's perhaps due to a misconfiguration of compiler flags or the layout of files in your project directory.Quote:
Originally Posted by Mitsukai
that is the problem i dont have visual studio .. i have vc++ express
http://www.comeaucomputing.com/ @ $50
If there are concerns with the express edition you can try the full version.
Dev C++ works perfect for me, and its free
i dont have any money. i need a job :(
CodeBlocks:
http://www.codeblocks.org/
Dev-C++
http://www.bloodshed.net
Both IDE's are set to use the MingW / gcc compiler underneath.
Regards,
Paul McKenzie
Interesting I didn't know about codeblocks. Has anyone used it and compared it to Dev-C++?
I've used CodeBlocks just briefly. I've used Dev-C++ quite a lot, however Dev-C++ hasn't been updated in quite a while now (which is the reason I am looking at CodeBlocks to compile my gcc-based libraries).
So far, I'm impressed with CodeBlocks, but I haven't really made it go through the full paces yet.
Regards,
Paul McKenzie
Nice, I'll have to try it then. I always had a lot of issues with Dev-C++ that I didn't like.
i think i have figures out my issues...
I use the full version at work and express at home. They are both fine.Quote:
Originally Posted by Mitsukai
hey. can you please try this code in both versions:
Code:template<class t_Security>
struct ObjHeap
{
typedef t_Security Security;
template<class t_Heap = ObjHeap<Security> >
struct BaseTrait
{
struct Copy
{
} static Copy;
}; typedef BaseTrait<> Trait;
};
template<class t_Security>
template <class t_Heap>
struct ObjHeap<t_Security>::BaseTrait<t_Heap>::Copy ObjHeap<t_Security>::BaseTrait<t_Heap>::Copy;
and tell me if u get error.
what about solaris? in the add, i think i might change to solaris... is this a unix system like linux? it also says they have package with compiler
What are you trying to do there?Code:template<class t_Security>
template <class t_Heap>
struct ObjHeap<t_Security>::BaseTrait<t_Heap>::Copy ObjHeap<t_Security>::BaseTrait<t_Heap>::Copy;
just try to compile it on the pro version.
express version gives error.
works with comeau and probably all the other compilers
Can't use the pro version until Monday, but I'm certain that express and pro use the same command line compiler exe.
Yes, Solaris is a Unix based operating system made by Sun Microsystems.Quote:
Originally Posted by Mitsukai
It has a GUI and console capabilities just like many Linux distributions, although IMO the Linux GUI's are much better :D
I've always been quite happy with MinGW (a windows native port of g++). It seems to be quite standards-compliant.
I develop code in MinGW in Windows, and generally have zero problems recompiling on VC++ in Windows, g++ or Intel's icc in Linux, or g++ on Solaris and Unix. I can't say the same for VC++ or Borland (particularly Borland).
This portability has been a godsend for me: I can develop my scientific computations in the comfort of Windows, and run them on powerful Linux clusters. And I can collaborate with scientists regardless of whether they use Windows or Linux (or Mac, etc.) -- Paul
i use codeblocks and dev-c++ now(both g++), so i can check for portable code :)
can some one please upload or link me so that i can downloag either Min GW or g++, cant seem to find the exe file for windows on their site...
Sorry!Quote:
Originally Posted by krayziehustler
Their site is definitely a little confusing. Here's the scoop:
1) A complete MinGW (not runtime) package:
http://prdownloads.sf.net/mingw/MinG...2.exe?download
I've been using the 5.0.2 package without any problems.
2) MSYS (a minimal sys type of thing, and handy, particularly for patching):
http://prdownloads.sf.net/mingw/MSYS...0.exe?download
Knowing which MinGW download to use has been a bit of a trick. Hopefully, this will help out. Thanks, and good luck!! -- Paul
*edit*
Evidently, the www.sourceforge.net/projects/mingw site is better updated than the www.mingw.org site. There's a slightly newer version here:
http://downloads.sourceforge.net/min...use_mirror=umn
http://downloads.sourceforge.net/min...se_mirror=osdn
-- Paul
*/edit*
Yes, visual studio 2005 (Professional) reports errors:Quote:
Originally Posted by Mitsukai
Comeau, does compile this, but produces a warning:Code:c:\test\codegurutest\codegurutest\codegurutest.cpp(17) : error C2065: 't_Heap' : undeclared identifier
c:\test\codegurutest\codegurutest\codegurutest.cpp(17) : error C2955: 'ObjHeap<t_Security>::BaseTrait' : use of class template requires template argument list
c:\test\codegurutest\codegurutest\codegurutest.cpp(12) : see declaration of 'ObjHeap<t_Security>::BaseTrait'
c:\test\codegurutest\codegurutest\codegurutest.cpp(17) : error C2143: syntax error : missing ';' before 'ObjHeap<t_Security>::BaseTrait<t_Heap>::Copy'
c:\test\codegurutest\codegurutest\codegurutest.cpp(17) : error C3858: 'ObjHeap<t_Security>::BaseTrait<t_Heap>::Copy': cannot be redeclared in current scope
c:\test\codegurutest\codegurutest\codegurutest.cpp(10) : see declaration of 'ObjHeap<t_Security>::BaseTrait<t_Heap>::Copy'
c:\test\codegurutest\codegurutest\codegurutest.cpp(17) : warning C4356: 'ObjHeap<t_Security>::BaseTrait<t_Heap>::Copy' : static data member cannot be initialized via derived class
c:\test\codegurutest\codegurutest\codegurutest.cpp(17) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\test\codegurutest\codegurutest\codegurutest.cpp(17) : error C2371: 'Copy' : redefinition; different basic types
c:\test\codegurutest\codegurutest\codegurutest.cpp(11) : see declaration of 'Copy'
The problem with Visual studio is that it does not allow the template instatiation of the static variables (the code Zacchaeus is asking about). If you replace that code with the following:Code:Comeau C/C++ 4.3.8 (Aug 19 2006 13:36:48) for ONLINE_EVALUATION_Alpha1
Copyright 1988-2006 Comeau Computing. All rights reserved.
MODE:strict errors C++
"ComeauTest.c", line 11: warning: storage class is not first
} static Copy;
^
then Visual Studio will compile with no errors and no warnings.Code:struct ObjHeap<int>::BaseTrait<long>::Copy ObjHeap<int>::BaseTrait<long>::Copy;
It's difficult for a compiler to know what static variables to instantiate a priori. Personally, I would not be surprised to find that most compilers that do not support export do not support the template instantiations of static variables. (I would particularly be interested if g++ compiled Mitsukai's original code)
Mitsukai, please note, that there are very, very few 100% ISO compliant C++ compilers around. Most popular compilers do not support export. I also understand there are esoteric corners of the language that many compilers don't bother to conform to (though I don't know what they are offhand). Visual C++ 2003 and 2005 are considered to be excellent in levels of compliance and generally speaking do not prevent people from writing effective code. (For reference, Dikumware has the only 100% compliant TR1 library and it is fully functional on Visual Studio versions 2003 and 2005 [i.e. versions 7.1 and 8.0 respectively]).
Also note that g++ is not 100% ISO compliant.Quote:
Originally Posted by KevinHall
As for 100% compliant compilers, I only know of Comeau (which generates C code and requires a C compiler back-end). Intel C++ 9.1 claims 100% compliance (though I have not seen this verified by independent sources).
This was resolved in another thread:
http://www.codeguru.com/forum/showth...28#post1493428
I renamed the Copy type to CopyT and replaced the 'struct' keyword with 'typename'.
This compiles in VC++2005.Code:template<class t_Security>
struct ObjHeap
{
typedef t_Security Security;
template<class t_Heap = ObjHeap<Security> >
struct BaseTrait
{
struct CopyT
{
} static Copy;
}; typedef BaseTrait<> Trait;
};
template<class t_Security>
template <class t_Heap>
typename ObjHeap<t_Security>::BaseTrait<t_Heap>::CopyT ObjHeap<t_Security>::BaseTrait<t_Heap>::Copy;
:)