Sign in Join
Wiki copytemporary

modifier: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: modifier

OldNewLine
1+**Modifiers** are [[Keyword|keywords]] modifying the standard behavior of a [[Pascal]] language construct, although some modifiers merely serve the purpose of being a *hint* to the compiler.
2+
3+## declaration modifiers
4+
5+### allocation
6+
7+- [[Absolute|absolute]]
8+- [[alias]]
9+- `cVar`
10+- `export`
11+- [[External|external]]
12+- [[Name|name]]
13+- `public`
14+
15+### routines
16+
17+- [[Forward|forward]]
18+- `overload`
19+
20+### hint directives
21+
22+If `{$modeSwitch hintDirectives+}`, the following [[Hint Directives|hint modifiers]] are available too:
23+
24+- `deprecated`
25+- `experimental`
26+- `platform`
27+- `unimplemented`
28+
29+These “modifiers” actually have no effect on the generated code, but can be promoted to errors using [[$warn|{$warn}]] (so, for example, in order to ensure `deprecated` functionality is not used in a release version).
30+
31+## call modifiers
32+
33+### calling convention
34+
35+- [[Cdecl|cDecl]]
36+- [[Cppdecl|cppDecl]]
37+- `interrupt`
38+- [[oldfpccall|oldFpcCall]]
39+- [[pascal]]
40+- [[Register|register]]
41+- [[Safecall|safeCall]]
42+- `saveRegisters`
43+- [[Stdcall|stdCall]]
44+- `varArgs` (in conjunction with `cDecl`)
45+- `winApi`
46+
47+### routine behavior hints
48+
49+- `IOCheck`
50+- `noReturn`
51+
52+### position
53+
54+- [[Far|far]]
55+- `far16`
56+- [[Local|local]]
57+- [[Near|near]]
58+
59+### optimization requests
60+
61+- [[Inline|inline]]
62+- [[Nostackframe|noStackFrame]]
63+
64+### other
65+
66+- `assembler`
67+- `softFloat`
68+
69+## properties
70+
71+- `default`
72+- `index`
73+- `noDefault`
74+- `read`
75+- `stored`
76+- `write`
77+
78+## object-oriented programming
79+
80+### access modifiers
81+
82+- [[Private|private]]
83+- [[Protected|protected]]
84+- `public`
85+- [[Published|published]]
86+- `strict` (only in combination with one of the four visibility specifiers listed above)
87+
88+### virtual methods
89+
90+- [[Abstract|abstract]]
91+- `dynamic`
92+- [[Override|override]]
93+- [[Reintroduce|reintroduce]]
94+- [[Virtual|virtual]]
95+
96+### classes
97+
98+- `enumerator`
99+- `static`
100+- `implements`
101+- `message`
102+
103+## miscellaneous
104+
105+### loops
106+
107+- [[Break|break]]
108+- [[Continue|continue]]
109+
110+### generics
111+
112+- `generic`
113+- `specialize`
114+
115+### libraries
116+
117+- [[Index|index]]
118+
119+### memory
120+
121+- [[Bitpacked|bitpacked]]
122+- `unaligned`
123+
124+### type helpers
125+
126+- `helper`
127+
128+## see also
129+
130+- [[Reserved word|reserved words]]
131+
132+---
133+*From the Free Pascal wiki, page "modifier", as it stood on 2021-01-28 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history