scm::
val
¶C++ representation of a Scheme value.
Like Scheme values, this type has reference semantics. Copying a scm::val
just copies a pointer or handle to the underlying Scheme object, thus just creating a new alias. Mutations to the referenced Scheme object are visible through all the aliases.
Public Types
base_t
= detail::wrapper¶Public Functions
val
(T &&x)¶Implicit conversion from a C++ type to a Scheme value.
The C++ object is always copied.
operator T
() const¶Implicit conversion from a Scheme value to a C++ type.
If the type is a custom type, the conversion may just return a reference to the underlying C++ object.
operator T&
() const¶operator const T&
() const¶scm::
list
¶C++ representation of a Scheme list.
Like Scheme values, this type has reference semantics. Copying a scm::list
just copies a pointer or handle to the underlying Scheme list, thus just creating a new alias. Mutations to the referenced Scheme list are visible through all the aliases.
Subclassed by scm::args
scm::
group
()¶Returns a scm::detail::definer
that can be used to add definitions to the current module.
scm::
group
(std::string group_name)¶Returns a named scm::detail::group_definer
that can be used to add definitions to the current module.
scm::
type
(std::string type_name)¶Returns a new scm::detail::type_definer
that registers a type T
with the given type_name
and can be used to add related definitions to the current module.
scm::detail::
type_definer
¶Public Functions
constructor
() &&¶Define a Scheme procedure ([type-name])
that returns a Scheme value holding a default constructed T
instance.
constructor
(Fn fn) &&¶Define a Scheme procedure ([type-name] ...)
that returns a Scheme value holding the result of invoking fn(args...)
.
maker
() &&¶Define a Scheme procedure (make-[type-name])
that returns a Scheme value holding a default constructed T
instance.
maker
(Fn fn) &&¶Define a Scheme procedure (make-[type-name] ...)
that returns the result of invoking fn(...)
.
finalizer
() &&¶Set the finalizer for Scheme wrapped values of T
to invoke the destructor of T
on the wrapped value.
finalizer
(Fn fn) &&¶Set the finalizer of T
to invoke fn(*this)
.
define
(std::string name, Fn fn) &&¶Define a Scheme procedure ([type-name]-[name] ...)
that returns the result of invoking fn(...)
.