CVS difference for ai05s/ai05-0150-1.txt
--- ai05s/ai05-0150-1.txt 2010/01/30 05:03:20 1.4
+++ ai05s/ai05-0150-1.txt 2010/02/23 07:31:06 1.5
@@ -1,4 +1,4 @@
-!standard 8.4(4) 10-01-29 AI05-0150-1/02
+!standard 8.4(4) 10-02-04 AI05-0150-1/03
!standard 8.4(8/2)
!class Amendment 09-04-22
!status work item 09-04-22
@@ -35,15 +35,26 @@
Add to the end of 8.4(8/2):
+ If a use_type_clause whose scope encloses a place includes the reserved
+ word "all", then the following are also potentially use-visible at this
+ place if its declaration is visible at this place:
+ - Each primitive subprogram of T Redundant[including each enumeration
+ literal (if any)];
+ - Each subprogram that is declared immediately within the declarative
+ region in which an ancestor type of T is declared and that operates
+ on a class-wide type that covers T.
+
+[Editor's note: Steve suggested using "in the same way" avoid having to repeat
+the three "place" definition. Thus:
+
If a use_type_clause includes the reserved word "all", then the
- following additional declarations are also made potentially
- use-visible in the same way as is done for the primitive operators of T:
+ following are also made potentially use-visible in the same way
+ as the primitive operators of T:
- - The visible primitive subprograms of T Redundant[including any
- enumeration literals];
- - Any visible subprograms that are declared immediately within
- the declarative region in which an ancestor type of T is
- declared and that operation on a class-wide type that covers T.
+I started wondering exactly what "in the same way" meant, and realized that
+writing it out was not significantly longer. So I erred on the side of
+clarity (vs. redundancy, the previous sentence of the paragraph is very
+similar to the new one). - RLB]
!discussion
@@ -54,7 +65,7 @@
makes constructor functions directly visible.
-The use of package use clause introduces a maintenance hazard into a program.
+The use of a package use clause introduces a maintenance hazard into a program.
Adding a new non-overloadable entity (like an object or subtype) to a package P
can make unrelated code that happens to "use" P illegal. That can happen
because the non-overloadable entity will "cancel" any other uses of the same
Questions? Ask the ACAA Technical Agent