X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=blobdiff_plain;f=folly%2Fdynamic.cpp;h=8ef7d08ee6e4159efc7f484dc8262c86f5d0cf09;hp=47fba09b1ce1c61ffb12b3ef64336e4922f333b7;hb=46c5dbce6c04234ae0185d3fadb62556c7e7625b;hpb=ed8c80a0e0988e4ce687f51ca832a00e4a6b7930 diff --git a/folly/dynamic.cpp b/folly/dynamic.cpp index 47fba09b..8ef7d08e 100644 --- a/folly/dynamic.cpp +++ b/folly/dynamic.cpp @@ -29,7 +29,7 @@ namespace folly { constexpr dynamic::Type dynamic::TypeInfo::type; \ // -FOLLY_DYNAMIC_DEF_TYPEINFO(void*) +FOLLY_DYNAMIC_DEF_TYPEINFO(std::nullptr_t) FOLLY_DYNAMIC_DEF_TYPEINFO(bool) FOLLY_DYNAMIC_DEF_TYPEINFO(std::string) FOLLY_DYNAMIC_DEF_TYPEINFO(dynamic::Array) @@ -65,7 +65,7 @@ TypeError::~TypeError() = default; do { \ switch ((type)) { \ case NULLT: \ - apply(void*); \ + apply(std::nullptr_t); \ break; \ case ARRAY: \ apply(Array); \ @@ -208,7 +208,7 @@ const dynamic* dynamic::get_ptr(dynamic const& idx) const& { if (idx < 0 || idx >= parray->size()) { return nullptr; } - return &(*parray)[idx.asInt()]; + return &(*parray)[size_t(idx.asInt())]; } else if (auto* pobject = get_nothrow()) { auto it = pobject->find(idx); if (it == pobject->end()) { @@ -228,7 +228,7 @@ dynamic const& dynamic::at(dynamic const& idx) const& { if (idx < 0 || idx >= parray->size()) { std::__throw_out_of_range("out of range in dynamic array"); } - return (*parray)[idx.asInt()]; + return (*parray)[size_t(idx.asInt())]; } else if (auto* pobject = get_nothrow()) { auto it = pobject->find(idx); if (it == pobject->end()) { @@ -254,8 +254,7 @@ std::size_t dynamic::size() const { throw TypeError("array/object", type()); } -dynamic::const_iterator -dynamic::erase(const_iterator first, const_iterator last) { +dynamic::iterator dynamic::erase(const_iterator first, const_iterator last) { auto& arr = get(); return get().erase( arr.begin() + (first - arr.begin()),