felipecrv opened a new issue, #37891:
URL: https://github.com/apache/arrow/issues/37891

   ### Describe the enhancement requested
   
   Types like `ListType` and factory functions like `list` take a `const 
std::shared_ptr<DataType>&` instead of a `std::shared_ptr<DataType>` that could 
be moved into the newly constructed `ListType` without the need of bumping a 
refcount and still support cases where caller can only give it a reference.
   
   Currently:
   
   ```cpp
   std::shared_ptr<DataType> list(const std::shared_ptr<DataType>& value_type) {
     return std::make_shared<ListType>(value_type);
   }
   ```
   
   After this issue is fixed:
   
   ```cpp
   std::shared_ptr<DataType> list(std::shared_ptr<DataType> value_type) {
     return std::make_shared<ListType>(std::move(value_type));
   }
   ```
   
   When working on this, we should take the time to go through every callsite 
and decide if a `std::move()` is possible without breaking correctness — things 
could break if the parameter is used after it's moved into the new instance of 
a parametric type.
   
   
   
   ### Component(s)
   
   C++


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to