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: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:275:
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:302:
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:303:
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:364:
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:366:
&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:411:
(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:412:
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
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:102:
vec_insert_one_l( \
GENERIC_VEC(v), \
&LVAL_AS(VEC_DATATYPE(v), lval), \
&(lval), \
sizeof(VEC_DATATYPE(v)), \
- In
Insert.h:127:
(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: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))))
///
Last updated on