LVAL_AS
Description
Creates a fresh l-value of type T initialized from expression x. Uses compound-literal initialization rather than a cast so it works for structs as well as scalars (MSVC C2440 rejects struct-to-same-struct casts).
Parameters
| Name | Direction | Description |
|---|---|---|
T |
in | Target type of the produced l-value. |
x |
in | Source expression. Must be convertible to T via initialization. |
Success
Returns an addressable l-value of type T.
Failure
Compile error when x is not initialization-compatible with T.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Insert.h:65:
(ValidateGraph(g), \
CHECK_TYPE_CONVERTIBLE(GRAPH_NODE_TYPE(g), rval), \
graph_push_node(GENERIC_GRAPH(g), &LVAL_AS(GRAPH_NODE_TYPE(g), rval), sizeof(GRAPH_NODE_TYPE(g))))
///
- In
Insert.h:42:
(ValidateVec(v), \
CHECK_TYPE_EQUIVALENCE(TYPE_OF(lval), VEC_DATATYPE(v)), \
vec_insert_one_l(GENERIC_VEC(v), &LVAL_AS(VEC_DATATYPE(v), lval), &(lval), sizeof(VEC_DATATYPE(v)), (idx), true))
///
- In
Insert.h:66:
(ValidateVec(v), \
CHECK_TYPE_CONVERTIBLE(VEC_DATATYPE(v), rval), \
vec_insert_one_r(GENERIC_VEC(v), &LVAL_AS(VEC_DATATYPE(v), rval), sizeof(VEC_DATATYPE(v)), (idx), true))
///
- In
Insert.h:106:
vec_insert_one_l( \
GENERIC_VEC(v), \
&LVAL_AS(VEC_DATATYPE(v), lval), \
&(lval), \
sizeof(VEC_DATATYPE(v)), \
- In
Insert.h:131:
(ValidateVec(v), \
CHECK_TYPE_CONVERTIBLE(VEC_DATATYPE(v), rval), \
vec_insert_one_r(GENERIC_VEC(v), &LVAL_AS(VEC_DATATYPE(v), rval), sizeof(VEC_DATATYPE(v)), (idx), false))
///
- In
Insert.h:36:
(ValidateList(l), \
CHECK_TYPE_EQUIVALENCE(TYPE_OF(lval), LIST_DATA_TYPE(l)), \
list_insert_one_l(GENERIC_LIST(l), &LVAL_AS(LIST_DATA_TYPE(l), lval), &(lval), sizeof(LIST_DATA_TYPE(l)), (idx)))
///
- In
Insert.h:56:
(ValidateList(l), \
CHECK_TYPE_CONVERTIBLE(LIST_DATA_TYPE(l), rval), \
list_insert_one_r(GENERIC_LIST(l), &LVAL_AS(LIST_DATA_TYPE(l), rval), sizeof(LIST_DATA_TYPE(l)), (idx)))
///
- In
Insert.h:231:
map_insert_r_impl( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), in_key), \
sizeof(MAP_KEY_TYPE(m)), \
&LVAL_AS(MAP_VALUE_TYPE(m), in_value), \
- In
Insert.h:233:
&LVAL_AS(MAP_KEY_TYPE(m), in_key), \
sizeof(MAP_KEY_TYPE(m)), \
&LVAL_AS(MAP_VALUE_TYPE(m), in_value), \
sizeof(MAP_VALUE_TYPE(m)), \
sizeof(MAP_ENTRY_TYPE(m)), \
- In
Insert.h:290:
map_set_first_l_impl( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), in_key), \
&(in_value), \
sizeof(MAP_KEY_TYPE(m)), \
- In
Insert.h:319:
map_set_first_r_impl( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), in_key), \
&LVAL_AS(MAP_VALUE_TYPE(m), in_value), \
sizeof(MAP_KEY_TYPE(m)), \
- In
Insert.h:320:
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), in_key), \
&LVAL_AS(MAP_VALUE_TYPE(m), in_value), \
sizeof(MAP_KEY_TYPE(m)), \
sizeof(MAP_VALUE_TYPE(m)), \
- In
Insert.h:381:
map_set_only_r_impl( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), in_key), \
sizeof(MAP_KEY_TYPE(m)), \
&LVAL_AS(MAP_VALUE_TYPE(m), in_value), \
- In
Insert.h:383:
&LVAL_AS(MAP_KEY_TYPE(m), in_key), \
sizeof(MAP_KEY_TYPE(m)), \
&LVAL_AS(MAP_VALUE_TYPE(m), in_value), \
sizeof(MAP_VALUE_TYPE(m)), \
sizeof(MAP_ENTRY_TYPE(m)), \
- In
Insert.h:444:
(MAP_VALUE_TYPE(m) *)map_ensure_value_ptr( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), lookup_key), \
&LVAL_AS(MAP_VALUE_TYPE(m), default_value), \
sizeof(MAP_ENTRY_TYPE(m)), \
- In
Insert.h:445:
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), lookup_key), \
&LVAL_AS(MAP_VALUE_TYPE(m), default_value), \
sizeof(MAP_ENTRY_TYPE(m)), \
offsetof(MAP_ENTRY_TYPE(m), key), \
- In
Access.h:193:
map_contains( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), lookup_key), \
sizeof(MAP_ENTRY_TYPE(m)), \
offsetof(MAP_ENTRY_TYPE(m), key), \
- In
Access.h:218:
map_contains_pair( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), lookup_key), \
&((MAP_VALUE_TYPE(m)) {(lookup_value)}), \
sizeof(MAP_ENTRY_TYPE(m)), \
- In
Access.h:243:
map_value_count( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), lookup_key), \
sizeof(MAP_ENTRY_TYPE(m)), \
offsetof(MAP_ENTRY_TYPE(m), key), \
- In
Access.h:267:
((MAP_VALUE_TYPE(m) *)map_get_value_ptr( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), lookup_key), \
sizeof(MAP_ENTRY_TYPE(m)), \
offsetof(MAP_ENTRY_TYPE(m), key), \
- In
Access.h:297:
(*(MAP_VALUE_TYPE(m) *)map_get_value_or_default( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), lookup_key), \
&((MAP_VALUE_TYPE(m)) {(default_value)}), \
sizeof(MAP_ENTRY_TYPE(m)), \
- In
Access.h:357:
map_find_first_cursor( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), lookup_key), \
sizeof(MAP_ENTRY_TYPE(m)), \
offsetof(MAP_ENTRY_TYPE(m), key), \
- In
Access.h:382:
map_find_next_cursor( \
GENERIC_MAP(m), \
&LVAL_AS(MAP_KEY_TYPE(m), lookup_key), \
(cursor), \
sizeof(MAP_ENTRY_TYPE(m)), \
Last updated on