projects
/
folly.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
folly copyright 2015 -> copyright 2016
[folly.git]
/
folly
/
DynamicConverter.h
diff --git
a/folly/DynamicConverter.h
b/folly/DynamicConverter.h
index 2f56784beec5ffed6c5224fd45fd76fc111689b8..8d61048debb2c40f368cc4468fadce0a2e0bdf39 100644
(file)
--- a/
folly/DynamicConverter.h
+++ b/
folly/DynamicConverter.h
@@
-1,5
+1,5
@@
/*
/*
- * Copyright 201
4
Facebook, Inc.
+ * Copyright 201
6
Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@
-54,13
+54,20
@@
BOOST_MPL_HAS_XXX_TRAIT_DEF(value_type);
BOOST_MPL_HAS_XXX_TRAIT_DEF(iterator);
BOOST_MPL_HAS_XXX_TRAIT_DEF(mapped_type);
BOOST_MPL_HAS_XXX_TRAIT_DEF(iterator);
BOOST_MPL_HAS_XXX_TRAIT_DEF(mapped_type);
-template <typename T> struct class_is_container {
- typedef std::reverse_iterator<
T*
> some_iterator;
+template <typename T> struct
iterator_
class_is_container {
+ typedef std::reverse_iterator<
typename T::iterator
> some_iterator;
enum { value = has_value_type<T>::value &&
enum { value = has_value_type<T>::value &&
- has_iterator<T>::value &&
std::is_constructible<T, some_iterator, some_iterator>::value };
};
std::is_constructible<T, some_iterator, some_iterator>::value };
};
+template <typename T>
+using class_is_container = typename
+ std::conditional<
+ has_iterator<T>::value,
+ iterator_class_is_container<T>,
+ std::false_type
+ >::type;
+
template <typename T> struct class_is_range {
enum { value = has_value_type<T>::value &&
has_iterator<T>::value };
template <typename T> struct class_is_range {
enum { value = has_value_type<T>::value &&
has_iterator<T>::value };
@@
-108,8
+115,8
@@
namespace dynamicconverter_detail {
template<typename T>
struct Dereferencer {
template<typename T>
struct Dereferencer {
- static inline void
-
derefToCache(T* mem, const dynamic::const_item_iterator& it
) {
+ static inline void
derefToCache(
+
T* /* mem */, const dynamic::const_item_iterator& /* it */
) {
throw TypeError("array", dynamic::Type::OBJECT);
}
throw TypeError("array", dynamic::Type::OBJECT);
}