summaryrefslogtreecommitdiff
path: root/docs/data/core/ref.json
blob: 518a5d6b3e55ada3a98ece95f806c7f595ee88bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
	"format": 1,
	"id": "saw-ref",
	"kind": "class",
	"name": "ref",
	"namespace": "saw",
	"module": "core",
	"header": "modules/core/c++/common.hpp",
	"brief_description": "Reference class for easier distinction of references and their referenced types.",
	"detailed_description": [
		[
			"Always refers to something, so unlike",
			{"name": "ptr", "id": "saw-ptr"},
			"it has no empty state and no validity check."
		],
		[
			"Moving is forbidden, since that would invalidate the type, while copying is allowed. It is constexpr throughout, so it can be formed and followed at compile time."
		]
	],
	"templates": [
		{"name": "T", "kind": "type"}
	],
	"attributes": {
		"saw-ref-ref_": {
			"id": "saw-ref-ref_",
			"name": "ref_",
			"type": ["T *"],
			"visibility": "private"
		}
	},
	"functions": {
		"saw-ref-ctor": {
			"id": "saw-ref-ctor",
			"name": "ref",
			"type": [],
			"parameters": [
				{"name": "ref__", "type": ["T &"]}
			]
		},
		"saw-ref-call": {
			"id": "saw-ref-call",
			"name": "operator()",
			"type": ["T &"],
			"brief_description": "The referenced object."
		}
	}
}