Contents
Syntax
The syntax for
struct{options}(name)
{
//struct block
}
@struct{options}(name)
{
//struct block
}
Description
The
Note:
@struct(s)
{
# struct block
}!
Options
The following options are available for
| option | description |
|---|---|
| struct block uses |
|
| struct block uses |
|
| parse struct block at definition time | |
| option | description |
f++ example
Examples of
struct(circle)
{
if(params.size() != 2)
error("circle: expected 2 parameters, got $[params.size]")
:=(int, $[params.name].radius = params.at(0))
:=(string, $[params.name].colour = params.at(1))
}
:=(circle, c(2, "fluro green"))
console("radius: ", c.radius)
console("colour: ", c.colour)
struct(pair)
{
if(types.size() != 2)
error("pair: expected 2 types, got types.size()")
if(params.size() != 2)
error("pair: expected 2 parameters, got params.size()")
:=(types.at(0), $[params.name].first = params.at(0))
:=(types.at(1), $[params.name].second = params.at(1))
}
:=(pair<int, string>, p(10, "hello, world!"))
console("p.first: ", p.first)
console("p.second: ", p.second)
struct(vector)
if(params.size() != 2)
error("vector: expected 2 parameters, got ", params.size())
int $[params.name].size = params.at(0)
for{!s}(int i=0; i<$[params.name].size; i+=1; forget(i))
"types.at(0)" $[params.name][$[i]](params.at(1))
function{pb}($[params.name].str)
join($[params.name], " ")
function{pb}($[params.name].print)
console($[params.name].str())
function{pb, !s}($[params.name].push_back)
"@types.at(0)" $[params.name][\$[$[params.name].size]](params.at(0))
++($[params.name].size)
function{pb}($[params.name].pop_back)
--($[params.name].size)
forget($[params.name][\$[$[params.name].size]])
vector<int> v(5, 4);
v.push_back(32);
console(v.str())
console(v.size)
v.pop_back();
console(v.str())
console(v.size)
n++ example
Examples of
@struct(circle)
{
if(params.size() != 2)
error("circle: expected 2 parameters, got $[params.size]")
:=(int, $[params.name].radius = params.at(0))
:=(string, $[params.name].colour = params.at(1))
}
@:=(circle, c(2, "fluro green"))
@console("radius: ", c.radius)
@console("colour: ", c.colour)
@struct(pair)
{
if(types.size() != 2)
error("pair: expected 2 types, got types.size()")
if(params.size() != 2)
error("pair: expected 2 parameters, got params.size()")
:=(types.at(0), $[params.name].first = params.at(0))
:=(types.at(1), $[params.name].second = params.at(1))
}
@:=(pair<int, string>, p(10, "hello, world!"))
@console("p.first: ", p.first)
@console("p.second: ", p.second)

![[ports] (FreeBSD) Get it from the FreeBSD [ports]](../../images/freebsd.webp)
