Optimize deque to/from variant
This commit is contained in:
parent
0ad91391c7
commit
1bbb748c4e
1 changed files with 4 additions and 7 deletions
|
|
@ -34,10 +34,9 @@ namespace fc {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void to_variant( const std::deque<T>& var, variant& vo )
|
void to_variant( const std::deque<T>& var, variant& vo )
|
||||||
{
|
{
|
||||||
std::vector<variant> vars(var.size());
|
std::vector<variant> vars;
|
||||||
size_t i = 0;
|
vars.reserve(var.size());
|
||||||
for( auto itr = var.begin(); itr != var.end(); ++itr, ++i )
|
std::transform(var.begin(), var.end(), std::back_inserter(vars), [](const T& t) { return variant(t); });
|
||||||
vars[i] = variant(*itr);
|
|
||||||
vo = vars;
|
vo = vars;
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
|
@ -45,8 +44,6 @@ namespace fc {
|
||||||
{
|
{
|
||||||
const variants& vars = var.get_array();
|
const variants& vars = var.get_array();
|
||||||
vo.clear();
|
vo.clear();
|
||||||
vo.reserve( vars.size() );
|
std::transform(vars.begin(), vars.end(), std::back_inserter(vo), [](const variant& t) { return t.template as<T>(); });
|
||||||
for( auto itr = vars.begin(); itr != vars.end(); ++itr )
|
|
||||||
vo.insert( itr->as<T>() );
|
|
||||||
}
|
}
|
||||||
} // namespace fc
|
} // namespace fc
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue