Jump to page: 1 2
Thread overview
New C++ compiler 8.1e
Sep 23, 2001
Walter
Sep 23, 2001
Jan Knepper
Sep 23, 2001
Walter
Sep 24, 2001
Christof Meerwald
Sep 24, 2001
Walter
Sep 24, 2001
Christof Meerwald
Sep 25, 2001
Rajiv Bhagwat
Sep 25, 2001
Christof Meerwald
Sep 27, 2001
Christof Meerwald
Sep 28, 2001
Mark Evans
Sep 28, 2001
Walter
Sep 29, 2001
Chris
Sep 29, 2001
Walter
Oct 04, 2001
Chris
Oct 05, 2001
Walter
Oct 05, 2001
Chris
Oct 06, 2001
Walter
September 23, 2001
www.digitalmars.com/compiler.htm



September 23, 2001
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
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
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
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
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
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
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
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
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
> >
> 
> 


« First   ‹ Prev
1 2