• Jaakko Moisio's avatar
    Fix compilation of input_adapter(container) in edge cases · 467f622c
    Jaakko Moisio authored
    This fixes a compilation issue with the library if trying to use containers that
    don't have non-member `begin()` and `end()` functions via ADL.
    
    This patch extends the `using std::begin` and `using std::end` declarations to
    also cover the return type deduction of the input_adapter() template
    specialization for containers. The previous implementation only enabled the
    detection of `std::begin()` and `std::end()` in the function body, making the
    specialization unusable for container types that only have member `begin()` and
    `end()` functions.
    
    It is not typical to have `using` declarations in the namespace scope in a
    header file. But a C++11 implementation can't rely on fully automatic return
    type deduction, and needs to rely on ADL enabled helper templates. To prevent
    the using declarations leaking, they are enclosed in another nested namespace.
    467f622c
json.hpp 910 KB