bkietz commented on a change in pull request #9444:
URL: https://github.com/apache/arrow/pull/9444#discussion_r573088486
##########
File path: cpp/src/arrow/util/bit_block_counter.h
##########
@@ -292,9 +413,10 @@ class ARROW_EXPORT OptionalBinaryBitBlockCounter {
// Functional-style bit block visitors.
template <typename VisitNotNull, typename VisitNull>
-Status VisitBitBlocks(const std::shared_ptr<Buffer>& bitmap_buf, int64_t
offset,
- int64_t length, VisitNotNull&& visit_not_null,
- VisitNull&& visit_null) {
+static inline Status VisitBitBlocks(const std::shared_ptr<Buffer>& bitmap_buf,
Review comment:
SGTM.
I was actually surprised to learn that this has an effect:
- When linking object files which each have `inline void noop(){}` the
symbol in the resulting shared object will be non-global so it can be `strip`'d
out. The same is true for
```
static void noop(){}
__attribute__((visibility("hidden"))) void noop(){}
namespace{ void noop(){} }
```
- When linking object files which each have `template <typename T> void
noop(){}` the symbol will be weak but *global*, so it survives `strip`. By
contrast the symbol for `template <typename T> static void noop(){}` will be
non-global.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]