|
| | input_adapter (std::istream &i) |
| | input adapter for input stream More...
|
| |
| | input_adapter (std::istream &&i) |
| | input adapter for input stream More...
|
| |
| | input_adapter (const std::wstring &ws) |
| |
| | input_adapter (const std::u16string &ws) |
| |
| | input_adapter (const std::u32string &ws) |
| |
| template<typename CharT , typename std::enable_if< std::is_pointer< CharT >::value andstd::is_integral< typename std::remove_pointer< CharT >::type >::value andsizeof(typename std::remove_pointer< CharT >::type)==1, int >::type = 0> |
| | input_adapter (CharT b, std::size_t l) |
| | input adapter for buffer More...
|
| |
| template<typename CharT , typename std::enable_if< std::is_pointer< CharT >::value andstd::is_integral< typename std::remove_pointer< CharT >::type >::value andsizeof(typename std::remove_pointer< CharT >::type)==1, int >::type = 0> |
| | input_adapter (CharT b) |
| | input adapter for string literal More...
|
| |
| template<class IteratorType , typename std::enable_if< std::is_same< typename std::iterator_traits< IteratorType >::iterator_category, std::random_access_iterator_tag >::value, int >::type = 0> |
| | input_adapter (IteratorType first, IteratorType last) |
| | input adapter for iterator range with contiguous storage More...
|
| |
| template<class T , std::size_t N> |
| | input_adapter (T(&array)[N]) |
| | input adapter for array More...
|
| |
| template<class ContiguousContainer , typename std::enable_if< not std::is_pointer< ContiguousContainer >::value andstd::is_base_of< std::random_access_iterator_tag, typename std::iterator_traits< decltype(std::begin(std::declval< ContiguousContainer const >()))>::iterator_category >::value, int >::type = 0> |
| | input_adapter (const ContiguousContainer &c) |
| | input adapter for contiguous container More...
|
| |
| | operator input_adapter_t () |
| |
Definition at line 2335 of file json.hpp.
template<class IteratorType , typename std::enable_if< std::is_same< typename std::iterator_traits< IteratorType >::iterator_category, std::random_access_iterator_tag >::value, int >::type = 0>
| nlohmann::detail::input_adapter::input_adapter |
( |
IteratorType |
first, |
|
|
IteratorType |
last |
|
) |
| |
|
inline |
input adapter for iterator range with contiguous storage
Definition at line 2385 of file json.hpp.
References JSON_LIKELY.
2390 const auto is_contiguous = std::accumulate(
2391 first, last, std::pair<bool, int>(
true, 0),
2392 [&first](std::pair<bool, int> res, decltype(*first) val)
2394 res.first &= (val == *(std::next(std::addressof(*first), res.second++)));
2397 assert(is_contiguous);
2402 sizeof(
typename std::iterator_traits<IteratorType>::value_type) == 1,
2403 "each element in the iterator range must have the size of 1 byte");
2405 const auto len =
static_cast<size_t>(std::distance(first, last));
2409 ia = std::make_shared<input_buffer_adapter>(
reinterpret_cast<const char*
>(&(*first)), len);
2414 ia = std::make_shared<input_buffer_adapter>(
nullptr, len);