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(...).