New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[class] Split paragraph defining standard-layout class #2066
Conversation
source/classes.tex
Outdated
@@ -201,6 +202,7 @@ | |||
\item If \tcode{X} is a non-class, non-array type, the set $M(\mathtt{X})$ is empty. | |||
\end{itemize} | |||
|
|||
\pnum | |||
\begin{note} $M(\mathtt{X})$ is the set of the types of all non-base-class subobjects | |||
that may be at a zero offset in \tcode{X}. \end{note} | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jwakely: Please remove this secret intra-paragraph paragraph break here.
Actually, I'm not so sure about this split: M(X) is only defined inside this single paragraph at the moment. With your change, we would leak this expository device into the whole-subclause scope, if you see what I mean. |
This is recent CWG text and I concur with @tkoeppe's view that M(X) is local expository device that we should not spread more. |
I see what you mean, but the current formatting is ... let's just say it leaves a lot to be desired. Why do we say "(defined below)" if it's right there in the next sentence? We already say "defined as follows" in that next sentence, how many times do we need a teaser trailer for that definition? Why do we have that "M(X) is defined as follows" floating in the middle of the list, unattached to any single bullet? Why is (8.8) a continuation of the same list, if it only applies to (8.7)? Wouldn't the bullets defining M(X) it be better as a nested list, e.g. (8.7.1), (8.7.2) and so on? I know we can't do that with our current |
(That doesn't change the fact it's excessively long, but I think it improves the structure) |
I like the last version, with the M(X) part of the same paragraph where it's used, and the example separate. I'd phrase the relevant item as "has no element of the set M(S) of types as a base class, where M(X) is defined as follows:". |
Or even:
|
I'm not suggesting we actually use |
@tkoeppe my edits crossed with your comments, so I'm not sure which "last version" you mean now :-) I won't edit it again. |
I mean the last screenshot in #2066 (comment). But what you have now is equivalent for the purpose of the stuff I was talking about. |
This is a drive-by, but we really should say what X is in M(X): "For a type X, M(X) is defined as follows..." |
@jensmaurer: I just suggested that above :-) |
+1 to something in the direction of @tkoeppe's suggestion:
|
Move the note before the definition of M(X). Use a nested list for the definition of M(X). Move the example to a new paragraph.
d2a2ccb
to
24da92d
Compare
Oh, can we fold the footnote into the note? |
The footnote is a somewhat imprecise rationale for the rule, so I think it would need quite a lot of massaging if we wanted to promote it to a note. Maybe we should consider removing it. But I think this PR is already a significant improvement, so I think we should merge it as-is and leave the footnote for future cleanup. |
This paragraph seems excessively long: