Topic: Question about constructing indeterminant values.


Author: rfg@netcom.com (Ronald F. Guilmette)
Date: Wed, 8 Dec 1993 04:13:15 GMT
Raw View
The minutes from the recent San Jose meeting of the C++ standardization
committee contain the following curious entry:

>      39. Motion (that the value of T() should be defined for every type T) by
>          Eckel/Hartinger:
>
>          Move we adopt the change to the Working Paper recommended in N0364 =
>          93-0157.
>
>      Motion passed X3J16: 51 yes, 0 no.
>      Motion passed WG21: 8 yes, 0 no, 0 abstain.

Would someone who was there for this vote please clarify this for me?

Did the committee really intend that the following code should be considered
perfectly valid???

 struct abstract { void pure () = 0; };

 typedef void incomplete_type_1;
 typedef int incomplete_type_2[];
 typedef struct incomplete incomplete_type_3;
 typedef void (function_type) ();
 typedef struct abstract abstract_type;

 void foobar ()
 {
  incomplete_type_1 ();
  incomplete_type_2 ();
  incomplete_type_3 ();
  function_type ();
  abstract_type ();
 }

Do users now have good reason to complain to their vendors if the compilers
they have now refuse to accept the above code???

--

-- Ronald F. Guilmette, Sunnyvale, California -------------------------------
------ domain address: rfg@netcom.com ---------------------------------------
------ uucp address: ...!uunet!netcom.com!rfg -------------------------------