Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-14800

[C++] Compiler error on LocalFileSystem::OpenOutputStream "'arrow::internal::launder': ambiguous call to overloaded function"

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 6.0.1
    • 7.0.0, 6.0.3
    • C++
    • Windows 10, Visual Studio 2019 16.11.6

    Description

      Hi, I'm trying to upgrade to arrow-cpp 6.0 and I have some code which compiles with 5.0.0:

      inline void write_table(const std::shared_ptr<arrow::Table>& table, const std::string& file)
      {
          auto arrow_fs_ = arrow::fs::LocalFileSystem();
          std::string corrected_path = value_or_throw(arrow_fs_.NormalizePath(file));
          auto stream_opt = arrow_fs_.OpenOutputStream(corrected_path);
          auto status = arrow::ipc::feather::WriteTable(*table, value_or_throw(stream_opt).get());
          ALCC_ARROW_STATUS_CHECK(status);
      }

       

      The following line is the root of the compile stack trace

       

      auto stream_opt = arrow_fs_.OpenOutputStream(corrected_path);

       

      It gives me the following error:

       
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/util/aligned_storage.h(36,1): error C2668: 'arrow::internal::launder': ambiguous call to overloaded function [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\build\market_data\marke
      t_data.vcxproj]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/util/launder.h(29,14): message : could be 'T *arrow::internal::launder<T>(T *) noexcept' [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\build\market_data\market_data.vcxproj]      
                with
                [
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\new(33,27): message : or       '_Ty *std::launder<T>(_Ty *) noexcept' [found using argument-dependent lookup] [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\build\market_data\m 
      arket_data.vcxproj]
                with
                [
                    _Ty=std::shared_ptr<arrow::io::OutputStream>,
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/util/aligned_storage.h(36,1): message : while trying to match the argument list '(T *)' [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\build\market_data\market_data.vcxproj]       
                with
                [
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/util/aligned_storage.h(36): message : while compiling class template member function 'T *arrow::internal::AlignedStorage<T>::get(void) noexcept' [C:\Users\anders.wind\Documents\0.Projects\Alip 
      esQuant\alcc\build\market_data\market_data.vcxproj]
                with
                [
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/result.h(424): message : see reference to function template instantiation 'T *arrow::internal::AlignedStorage<T>::get(void) noexcept' being compiled [C:\Users\anders.wind\Documents\0.Projects\ 
      AlipesQuant\alcc\build\market_data\market_data.vcxproj]
                with
                [
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/result.h(435): message : see reference to class template instantiation 'arrow::internal::AlignedStorage<T>' being compiled [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\build\mar 
      ket_data\market_data.vcxproj]
                with
                [
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\astl\include\astl/arrow_helpers.h(86): message : see reference to class template instantiation 'arrow::Result<std::shared_ptr<arrow::io::OutputStream>>' being compiled [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alc 
      c\build\market_data\market_data.vcxproj]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/util/aligned_storage.h(36,1): error C2668: 'arrow::internal::launder': ambiguous call to overloaded function [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\build\simulation\simula
      te.vcxproj]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/util/launder.h(29,14): message : could be 'T *arrow::internal::launder<T>(T *) noexcept' [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\build\simulation\simulate.vcxproj]
                with
                [
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\new(33,27): message : or       '_Ty *std::launder<T>(_Ty *) noexcept' [found using argument-dependent lookup] [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\build\simulation\si 
      mulate.vcxproj]
                with
                [
                    _Ty=std::shared_ptr<arrow::io::OutputStream>,
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/util/aligned_storage.h(36,1): message : while trying to match the argument list '(T *)' [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\build\simulation\simulate.vcxproj]
                with
                [
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/util/aligned_storage.h(36): message : while compiling class template member function 'T *arrow::internal::AlignedStorage<T>::get(void) noexcept' [C:\Users\anders.wind\Documents\0.Projects\Alip 
      esQuant\alcc\build\simulation\simulate.vcxproj]
                with
                [
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/result.h(424): message : see reference to function template instantiation 'T *arrow::internal::AlignedStorage<T>::get(void) noexcept' being compiled [C:\Users\anders.wind\Documents\0.Projects\ 
      AlipesQuant\alcc\build\simulation\simulate.vcxproj]
                with
                [
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Users\anders.wind\Miniconda3\envs\quant_env_r20211123_1359_841f2c7e\Library\include\arrow/result.h(435): message : see reference to class template instantiation 'arrow::internal::AlignedStorage<T>' being compiled [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\build\sim 
      ulation\simulate.vcxproj]
                with
                [
                    T=std::shared_ptr<arrow::io::OutputStream>
                ]
      C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alcc\astl\include\astl/arrow_helpers.h(86): message : see reference to class template instantiation 'arrow::Result<std::shared_ptr<arrow::io::OutputStream>>' being compiled [C:\Users\anders.wind\Documents\0.Projects\AlipesQuant\alc 
      c\build\simulation\simulate.vcxproj]
      
      
      

      I compile with c++17 flags

      Attachments

        Issue Links

          Activity

            People

              apitrou Antoine Pitrou
              Awia Anders Wind
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 20m
                  1h 20m