AT
end()
— это past the end, то всегда begin() == end()
, что может, наверное сломать что-то) (например, реализацию bool empty() const { return begin() == end(); }
)Size: a a a
AT
end()
— это past the end, то всегда begin() == end()
, что может, наверное сломать что-то) (например, реализацию bool empty() const { return begin() == end(); }
)AB
end()
— это past the end, то всегда begin() == end()
, что может, наверное сломать что-то) (например, реализацию bool empty() const { return begin() == end(); }
)AT
{
init-statement
auto && __range = range_expression ;
auto __begin = begin_expr ;
auto __end = end_expr ;
if (!empty(__range)) {
do {
range_declaration = *__begin;
loop_statement
} while (++__begin != __end);
}
}
AT
size(__range) == 0
m
size(__range) == 0
size()
может быть линейным.AT
DS
AT
DS
AT
DS
DS
а
spread(func, 1, 2, 3)трансформировалось в
func(1);
func(2);
func(3);
S
spread(func, 1, 2, 3)трансформировалось в
func(1);
func(2);
func(3);
а
TS
а
A
template <typename T>
class StorageIO {};
template <>
class StorageIO<QIODevice>
{
template <typename T, auto id>
bool write();
}
template <>
template <typename T, auto id>
bool StorageIO<QIODevice>::writе()
{
return true;
}
DS
template <typename T>
class StorageIO {};
template <>
class StorageIO<QIODevice>
{
template <typename T, auto id>
bool write();
}
template <>
template <typename T, auto id>
bool StorageIO<QIODevice>::writе()
{
return true;
}