cppfastio / fast_io

Freestanding fast input/output for C++20
MIT License
661 stars 55 forks source link

fix win32 box #947

Closed MacroModel closed 2 days ago

MacroModel commented 2 days ago
  1. find_scatter_total_size_overflow_impl: Implementation error
  2. on winnt: ::fast_io::io::perr(::fast_io::wwin32_box_t{}, L"hello");
    ::fast_io::io::perr(::fast_io::wwin32_box_t{}, L"hello");
1>D:\github\fio_workplace\fio\fast_io\include\fast_io_hosted\platforms\win32_box.h(91,23): error C2672: “fast_io::details::win32_box_converter_scatter_path_impl”: 未找到匹配的重载函数
1>(编译源文件“fio.cpp”)
1>    D:\github\fio_workplace\fio\fast_io\include\fast_io_hosted\platforms\win32_box.h(65,13):
1>    可能是“void fast_io::details::win32_box_converter_scatter_path_impl(fast_io::basic_win32_family_box_t<family,ch_type>,const fast_io::basic_io_scatter_t<T> *,size_t)”
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_hosted\platforms\win32_box.h(91,23):
1>        “void fast_io::details::win32_box_converter_scatter_path_impl(fast_io::basic_win32_family_box_t<family,ch_type>,const fast_io::basic_io_scatter_t<T> *,size_t)”: 模板 参数“ch_type”不明确
1>            D:\github\fio_workplace\fio\fast_io\include\fast_io_hosted\platforms\win32_box.h(91,23):
1>            可能是“char16_t”
1>            D:\github\fio_workplace\fio\fast_io\include\fast_io_hosted\platforms\win32_box.h(91,23):
1>            或    “wchar_t”
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_hosted\platforms\win32_box.h(91,23):
1>        “void fast_io::details::win32_box_converter_scatter_path_impl(fast_io::basic_win32_family_box_t<family,ch_type>,const fast_io::basic_io_scatter_t<T> *,size_t)”: 无法从“fast_io::details::win32_box_converter_scatter_path_impl::scatter_may_alias_ptr”推导出“const fast_io::basic_io_scatter_t<T> *”的 模板 参数
1>    D:\github\fio_workplace\fio\fast_io\include\fast_io_hosted\platforms\win32_box.h(91,23):
1>    模板实例化上下文(最早的实例化上下文)为
1>        D:\github\fio_workplace\fio\fio.cpp(7,17):
1>        查看对正在编译的函数 模板 实例化“void fast_io::io::perr<fast_io::wwin32_box_t,const wchar_t(&)[6]>(T &&,const wchar_t (&)[6])”的引用
1>        with
1>        [
1>            T=fast_io::wwin32_box_t
1>        ]
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_legacy_impl\io.h(110,33):
1>        查看对正在编译的函数 模板 实例化“void fast_io::operations::decay::print_freestanding_decay_cold<false,fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>,fast_io::io_print_forward::no_cvref_t>(outputstmtype,fast_io::io_print_forward::no_cvref_t)”的引用
1>        with
1>        [
1>            outputstmtype=fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>
1>        ]
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_core_impl\operations\print_freestanding.h(1334,40):
1>        查看对正在编译的函数 模板 实例化“void fast_io::operations::decay::print_freestanding_decay<false,outputstmtype,fast_io::io_print_forward::no_cvref_t>(outputstmtype,fast_io::io_print_forward::no_cvref_t)”的引用
1>        with
1>        [
1>            outputstmtype=fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>
1>        ]
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_core_impl\operations\print_freestanding.h(1321,37):
1>        查看对正在编译的函数 模板 实例化“void fast_io::details::decay::print_controls_impl<false,outputstmtype,0,fast_io::io_print_forward::no_cvref_t,>(outputstmtype,T)”的引用
1>        with
1>        [
1>            outputstmtype=fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>,
1>            T=fast_io::io_print_forward::no_cvref_t
1>        ]
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_core_impl\operations\print_freestanding.h(1021,3):
1>        查看对正在编译的函数 模板 实例化“void fast_io::details::decay::print_control_single<false,outputstmtype,T>(output,T)”的引用
1>        with
1>        [
1>            outputstmtype=fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>,
1>            T=fast_io::io_print_forward::no_cvref_t,
1>            output=fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>
1>        ]
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_core_impl\operations\print_freestanding.h(275,34):
1>        查看对正在编译的函数 模板 实例化“void fast_io::operations::decay::write_all_decay<output>(outstmtype,const wchar_t *,const wchar_t *)”的引用
1>        with
1>        [
1>            output=fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>,
1>            outstmtype=fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>
1>        ]
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_core_impl\operations\writeimpl\decay.h(18,22):
1>        查看对正在编译的函数 模板 实例化“void fast_io::details::write_all_impl<outstmtype>(outstmtype,const wchar_t *,const wchar_t *)”的引用
1>        with
1>        [
1>            outstmtype=fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>
1>        ]
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_core_impl\operations\writeimpl\basis.h(524,22):
1>        查看对正在编译的函数 模板 实例化“void fast_io::details::write_all_cold_impl<outstmtype>(outstmtype,const wchar_t *,const wchar_t *)”的引用
1>        with
1>        [
1>            outstmtype=fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>
1>        ]
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_core_impl\operations\writeimpl\basis.h(236,3):
1>        查看对正在编译的函数 模板 实例化“void fast_io::scatter_write_all_overflow_define<fast_io::win32_family::wide_nt,wchar_t>(fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>,const fast_io::basic_io_scatter_t<wchar_t> *,size_t)”的引用
1>        D:\github\fio_workplace\fio\fast_io\include\fast_io_hosted\platforms\win32_box.h(184,22):
1>        查看对正在编译的函数 模板 实例化“void fast_io::details::win32_box_converter_scatter_path_impl<fast_io::win32_family::wide_nt,wchar_t>(fast_io::basic_win32_family_box_t<fast_io::win32_family::wide_nt,wchar_t>,const fast_io::basic_io_scatter_t<wchar_t> *,size_t)”的引用
MacroModel commented 2 days ago

add X_OK test for posix process

MacroModel commented 2 days ago

fix process, add pipe example