It should have been called _Overload or something similar, since it's not really a generic.
[[nodiscard]]
on functions to mark that the result from function shouldn't be discarded.
I think there is also a [[reproducible]]
attribute for saying a function doesn't do side effects. unsafe { /* Here be dragons */ }
is better design, in my opinion. I think if you want implicit conversions, there should be an explicit way to declare that you want things to be implicit. declare
function f (i: Integer) returns Integer is ( i * 2 );
x : Integer;
begin
x := f(21);
end; \m[blue]int\m[] x
Of course, you would use some kind of pre-processor to
make this less of a PITA, but it's not inconceivable. .TS
.TE
Incidentally, `.TS` and `.TE` is the environment for tbl(1), the pre-processor for tables.
Or by invoking another macro, as in this example for headings and paragraphs
in the -ms macro set. (The -ms macro set is called as such because that's how you get it into
your document, you supply the -ms flag at build time to groff to get the -ms macros).
See groff_ms(7) for more information than I will supply here. .NH 1
Some heading here
.PP
Start of a paragraph.
Sometimes you want to start a line of input with a period.
To do that you just use the character '\&' before the period.
The `\&` character is a non printing character, so use it anywhere you want, really.
I imagine you want to play with math typography, in that case there is EQN.
EQN works by having an environment block, `.EQ` and `.EN` and in that block
you type in the EQN mini-language. .EQ
f ( x ) ~=~ x sup {2} - 1
.EN
EQN does not care about precedence or anything, so use `{}` to delimit expressions.
I think there is some kind of EQN document rescued from Bell Labs that tells
you about how the language works. Check troff.org for it, or email the mailing
list for groff, which is also pretty good for newbie questions, it is not really
all that high traffic.