Skip to content

Broken compilation with std=c++11, std=c++14.... #1366

Closed
@Marisa-Chan

Description

@Marisa-Chan

After this commit 6de0454 :

In file included from tst.cpp:2: fmt/include/fmt/core.h: In instantiation of 'decltype (vis(0)) fmt::v6::visit_format_arg(Visitor&&, const fmt::v6::basic_format_arg<Context>&) [with Visitor = fmt::v6::printf_arg_formatter<fmt::v6::buffer_range<char> >; Context = fmt::v6::basic_printf_context<std::back_insert_iterator<fmt::v6::internal::buffer<char> >, char>; decltype (vis(0)) = std::back_insert_iterator<fmt::v6::internal::buffer<char> >]': fmt/include/fmt/printf.h:560:21: required from 'OutputIt fmt::v6::basic_printf_context<OutputIt, Char>::format() [with ArgFormatter = fmt::v6::printf_arg_formatter<fmt::v6::buffer_range<char> >; OutputIt = std::back_insert_iterator<fmt::v6::internal::buffer<char> >; Char = char]' fmt/include/fmt/printf.h:181:3: required from 'void fmt::v6::internal::printf(fmt::v6::internal::buffer<Char>&, fmt::v6::basic_string_view<Char>, fmt::v6::basic_format_args<Context>) [with Char = char; Context = fmt::v6::basic_printf_context<std::back_insert_iterator<fmt::v6::internal::buffer<char> >, char>]' fmt/include/fmt/printf.h:604:9: required from 'std::__cxx11::basic_string<Char> fmt::v6::vsprintf(const S&, fmt::v6::basic_format_args<fmt::v6::basic_printf_context<std::back_insert_iterator<fmt::v6::internal::buffer<Char> >, Char> >) [with S = fmt::v6::basic_string_view<char>; Char = char]' fmt/include/fmt/printf.h:621:18: required from 'std::__cxx11::basic_string<Char> fmt::v6::sprintf(const S&, const Args& ...) [with S = const char*; Args = {char [5]}; Char = char]' tst.cpp:8:62: required from here fmt/include/fmt/core.h:966:15: error: no match for call to '(fmt::v6::printf_arg_formatter<fmt::v6::buffer_range<char> >) (const __int128&)' 966 | return vis(arg.value_.int128_value); | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from tst.cpp:3: fmt/include/fmt/printf.h:239:12: note: candidate: 'template<class T, typename std::enable_if<std::is_integral<_Tp>::value, int>::type <anonymous> > fmt::v6::printf_arg_formatter<Range>::iterator fmt::v6::printf_arg_formatter<Range>::operator()(T) [with T = T; typename std::enable_if<std::is_integral<U>::value, int>::type <anonymous> = <enumerator>; Range = fmt::v6::buffer_range<char>]' 239 | iterator operator()(T value) { | ^~~~~~~~ fmt/include/fmt/printf.h:239:12: note: template argument deduction/substitution failed: In file included from tst.cpp:2: fmt/include/fmt/core.h:226:62: error: no type named 'type' in 'struct std::enable_if<false, int>' 226 | #define FMT_ENABLE_IF(...) enable_if_t<(__VA_ARGS__), int> = 0 | ^ fmt/include/fmt/printf.h:238:25: note: in expansion of macro 'FMT_ENABLE_IF' 238 | template <typename T, FMT_ENABLE_IF(std::is_integral<T>::value)> | ^~~~~~~~~~~~~

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions