Thread overview | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
September 23, 2001 New C++ compiler 8.1e | ||||
---|---|---|---|---|
| ||||
www.digitalmars.com/compiler.htm |
September 23, 2001 Re: New C++ compiler 8.1e | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | Wow!
* -Ab and -Aw are now always on (meaning that bool and
wchar_t are real types, not typedefs). Warning: This can break
existing code.
* -Aa is now always on (meaning that operator new[] and
operator delete[] are separately overloadable) Warning: This can
break existing code.
* parameter-declarations now allowed in function template
template-parameter-list.
* typename can now appear in template-parameter instead of
class.
* Explicit template function template-arguments implemented.
* Partial ordering of function templates implemented.
* elaborated-type-specifier (i.e. typename) implemented.
* mutable implemented.
* explicit implemented.
Walter wrote:
> www.digitalmars.com/compiler.htm
|
September 23, 2001 Re: New C++ compiler 8.1e | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jan Knepper | It still is not C++98 compliant with the templates, it's just a step in that direction. Jan Knepper wrote in message <3BAE385F.A1AD58A0@smartsoft.cc>... >Wow! > >* -Ab and -Aw are now always on (meaning that bool and >wchar_t are real types, not typedefs). Warning: This can break >existing code. >* -Aa is now always on (meaning that operator new[] and >operator delete[] are separately overloadable) Warning: This can >break existing code. >* parameter-declarations now allowed in function template >template-parameter-list. >* typename can now appear in template-parameter instead of >class. >* Explicit template function template-arguments implemented. >* Partial ordering of function templates implemented. >* elaborated-type-specifier (i.e. typename) implemented. >* mutable implemented. >* explicit implemented. > > > >Walter wrote: > >> www.digitalmars.com/compiler.htm > |
September 24, 2001 Re: New C++ compiler 8.1e | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | On Sun, 23 Sep 2001 14:20:39 -0700, Walter wrote in c++.announce: > It still is not C++98 compliant with the templates, it's just a step in that direction. Does that mean that you are still working on improving the C++ compiler? BTW, here are two code snippets which I think are valid C++ but don't compile with Digital Mars (just in case you want to fix some bugs/implement some more C++ features): namespace my_ns { class A { }; }; class B { friend class my_ns::A; // Error: only classes and functions can be friends }; class A { static const int size = 10; // Error: initializer for static member must be outside of class def char buf[size]; }; bye, Christof -- http://cmeerw.cjb.net Jabber: cmeerw@jabber.at mailto cmeerw at web.de ICQ: 93773535, Yahoo!: cmeerw ...and what have you contributed to the Net? |
September 24, 2001 Re: New C++ compiler 8.1e | ||||
---|---|---|---|---|
| ||||
Posted in reply to Christof Meerwald | Yes, I still work all the time on improving the C and C++ compilers, as well as on D. I want to bring C up to C99 compliance and C++ up to C++98. Thanks for the bug reports. -Walter Christof Meerwald wrote in message <9on6qs$1uog$1@digitaldaemon.com>... >On Sun, 23 Sep 2001 14:20:39 -0700, Walter wrote in c++.announce: >> It still is not C++98 compliant with the templates, it's just a step in that >> direction. > >Does that mean that you are still working on improving the C++ compiler? > > >BTW, here are two code snippets which I think are valid C++ but don't compile with Digital Mars (just in case you want to fix some bugs/implement some more C++ features): > > >namespace my_ns >{ > class A > { > }; >}; > >class B >{ > friend class my_ns::A; > // Error: only classes and functions can be friends >}; > > > > >class A >{ > static const int size = 10; > // Error: initializer for static member must be outside of class def > char buf[size]; >}; > > >bye, Christof > >-- >http://cmeerw.cjb.net Jabber: cmeerw@jabber.at mailto cmeerw at web.de ICQ: 93773535, Yahoo!: cmeerw > >...and what have you contributed to the Net? |
September 24, 2001 Re: New C++ compiler 8.1e | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | On Mon, 24 Sep 2001 10:30:54 -0700, Walter wrote: > Yes, I still work all the time on improving the C and C++ compilers, as well as on D. I want to bring C up to C99 compliance and C++ up to C++98. That's great - I was a bit afraid that you were only working on D now. > Thanks for the bug reports. Here is another one: namespace my_ns { enum bla { BLABLA_1, BLABLA_2 }; } bla oops; // this shouldn't work, but the compiler doesn't complain my_ns::bla blabla; // Error: 'bla' is not a member of namespace 'my_ns' bye, Christof -- http://cmeerw.cjb.net Jabber: cmeerw@jabber.at mailto cmeerw at web.de ICQ: 93773535, Yahoo!: cmeerw ...and what have you contributed to the Net? |
September 25, 2001 Re: New C++ compiler 8.1e | ||||
---|---|---|---|---|
| ||||
Posted in reply to Christof Meerwald | Working on the C++ compiler is really admirable. Please KUTGW. Thanks!! -- Rajiv Christof Meerwald <NOSPAM_seeMySig@fastrun.at> wrote in message news:9oo749$2gkn$1@digitaldaemon.com... > On Mon, 24 Sep 2001 10:30:54 -0700, Walter wrote: > > Yes, I still work all the time on improving the C and C++ compilers, as well > > as on D. I want to bring C up to C99 compliance and C++ up to C++98. > > That's great - I was a bit afraid that you were only working on D now. > > > > Thanks for the bug reports. > > Here is another one: > > namespace my_ns > { > enum bla > { > BLABLA_1, BLABLA_2 > }; > } > > bla oops; > // this shouldn't work, but the compiler doesn't complain > > my_ns::bla blabla; > // Error: 'bla' is not a member of namespace 'my_ns' > > > bye, Christof > > -- > http://cmeerw.cjb.net Jabber: cmeerw@jabber.at mailto cmeerw at web.de ICQ: 93773535, Yahoo!: cmeerw > > ...and what have you contributed to the Net? |
September 25, 2001 Re: New C++ compiler 8.1e | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | On Mon, 24 Sep 2001 10:30:54 -0700, Walter wrote: > Thanks for the bug reports. Here are two more: namespace my_ns { class A { }; template<class T> class B : A // Error: undefined identifier 'A' { }; } my_ns::B<int> b; and struct C { int operator->(); // Error: illegal return type for operator->() }; AFAIK, this restriction doesn't exist any more in the C++ standard. bye, Christof -- http://cmeerw.cjb.net Jabber: cmeerw@jabber.at mailto cmeerw at web.de ICQ: 93773535, Yahoo!: cmeerw ...and what have you contributed to the Net? |
September 27, 2001 Re: New C++ compiler 8.1e | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | On Mon, 24 Sep 2001 10:30:54 -0700, Walter wrote: > Thanks for the bug reports. Here is another one: enum A { A_VALUE }; bool operator ==(A a, A b) // Error: at least one parameter must be a class or a class& { return false; } But the C++ standard says (13.5.6): | An operator function shall either be a non-static member function or be a | non-member function and have at least one parameter whose type is a class, | a reference to a class, an enumeration, or a reference to an enumeration. bye, Christof -- http://cmeerw.cjb.net Jabber: cmeerw@jabber.at mailto cmeerw at web.de ICQ: 93773535, Yahoo!: cmeerw ...and what have you contributed to the Net? |
September 28, 2001 Re: New C++ compiler 8.1e | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | Here's a good library for testing the template code. http://www.boost.org/libs/python/doc/index.html The author David Abrahams sits on the C++ standards committee, or used to. From a Python development standpoint his library is the absolute best way to create Python extensions. It is also a heavily template-laden body of code that breaks a number of compilers. Mark On Sun, 23 Sep 2001 14:20:39 -0700, "Walter" <walter@digitalmars.com> wrote: > It still is not C++98 compliant with the templates, it's just a step in that direction. > > Jan Knepper wrote in message <3BAE385F.A1AD58A0@smartsoft.cc>... > >Wow! > > > >* -Ab and -Aw are now always on (meaning that bool and > >wchar_t are real types, not typedefs). Warning: This can break > >existing code. > >* -Aa is now always on (meaning that operator new[] and > >operator delete[] are separately overloadable) Warning: This can > >break existing code. > >* parameter-declarations now allowed in function template > >template-parameter-list. > >* typename can now appear in template-parameter instead of > >class. > >* Explicit template function template-arguments implemented. > >* Partial ordering of function templates implemented. > >* elaborated-type-specifier (i.e. typename) implemented. > >* mutable implemented. > >* explicit implemented. > > > > > > > >Walter wrote: > > > >> www.digitalmars.com/compiler.htm > > > > |
Copyright © 1999-2021 by the D Language Foundation