proxygen
folly::DynamicConverter< C, typename std::enable_if< dynamicconverter_detail::is_container< C >::value &&dynamicconverter_detail::is_associative< C >::value >::type > Struct Template Reference

#include <DynamicConverter.h>

Static Public Member Functions

static C convert (const dynamic &d)
 

Detailed Description

template<typename C>
struct folly::DynamicConverter< C, typename std::enable_if< dynamicconverter_detail::is_container< C >::value &&dynamicconverter_detail::is_associative< C >::value >::type >

Definition at line 281 of file DynamicConverter.h.

Member Function Documentation

template<typename C >
static C folly::DynamicConverter< C, typename std::enable_if< dynamicconverter_detail::is_container< C >::value &&dynamicconverter_detail::is_associative< C >::value >::type >::convert ( const dynamic d)
inlinestatic

Definition at line 286 of file DynamicConverter.h.

References folly::dynamic::begin(), C, folly::dynamic::end(), folly::dynamic::isArray(), folly::dynamic::isObject(), folly::dynamic::items(), and folly::dynamic::type().

286  {
287  C ret; // avoid direct initialization due to unordered_map's constructor
288  // causing memory corruption if the iterator throws an exception
289  if (d.isArray()) {
290  ret.insert(
291  dynamicconverter_detail::conversionIterator<C>(d.begin()),
292  dynamicconverter_detail::conversionIterator<C>(d.end()));
293  } else if (d.isObject()) {
294  ret.insert(
295  dynamicconverter_detail::conversionIterator<C>(d.items().begin()),
296  dynamicconverter_detail::conversionIterator<C>(d.items().end()));
297  } else {
298  throw TypeError("object or array", d.type());
299  }
300  return ret;
301  }
#define C(name, bit)
Definition: CpuId.h:204

The documentation for this struct was generated from the following file: