apache / apache/arrow

[C++][Acero] Build failure on OS X and cppstd 23

Open
#47,576 2 comments 1 reaction 0 assignees View on GitHub
Component: C++ Type: bug
Dominant language
C++
Stars
17.1k
Forks
4.3k
Avg merge
3d 13h
Merged PRs (30d)
88

Description

### Describe the bug, including details regarding any error messages, version, and platform.

To reproduce:

```
git clone https://github.com/apache/arrow
cd arrow/cpp
cmake -B build -DCMAKE_CXX_STANDARD=23 -DARROW_ACERO=ON .
cmake --build build
```

The relevant generated error:
```
[ 90%] Building CXX object src/arrow/acero/CMakeFiles/arrow_acero_objlib.dir/asof_join_node.cc.o
In file included from /Users/ataeppe/tmp/arrow/cpp/src/arrow/acero/asof_join_node.cc:18:
In file included from /Users/ataeppe/tmp/arrow/cpp/src/arrow/acero/asof_join_node.h:18:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:325:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/formatter_bool.h:19:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__format/formatter_integral.h:35:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:15:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/shared_ptr.h:32:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/unique_ptr.h:635:30: error: no matching constructor for initialization of 'arrow::acero::BackpressureController'
635 | return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...));
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/ataeppe/tmp/arrow/cpp/src/arrow/acero/asof_join_node.cc:515:14: note: in instantiation of function template specialization 'std::make_unique &>' requested here
515 | std::make_unique(
| ^
/Users/ataeppe/tmp/arrow/cpp/src/arrow/acero/asof_join_node.cc:464:3: note: candidate constructor not viable: cannot convert argument of incomplete type 'arrow::acero::AsofJoinNode *' to 'ExecNode *' for 2nd argument
464 | BackpressureController(ExecNode* node, ExecNode* output,
| ^ ~~~~~~~~~~~~~~~~
/Users/ataeppe/tmp/arrow/cpp/src/arrow/acero/asof_join_node.cc:462:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided
462 | class BackpressureController : public BackpressureControl {
| ^~~~~~~~~~~~~~~~~~~~~~
/Users/ataeppe/tmp/arrow/cpp/src/arrow/acero/asof_join_node.cc:462:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 3 were provided
462 | class BackpressureController : public BackpressureControl {
| ^~~~~~~~~~~~~~~~~~~~~~
/Users/ataeppe/tmp/arrow/cpp/src/arrow/acero/asof_join_node.cc:794:17: warning: private field 'node_' is not used [-Wunused-private-field]
794 | AsofJoinNode* node_;
| ^
/Users/ataeppe/tmp/arrow/cpp/src/arrow/acero/asof_join_node.cc:796:10: warning: private field 'index_' is not used [-Wunused-private-field]
796 | size_t index_;
| ^
2 warnings and 1 error generated.
make[2]: *** [src/arrow/acero/CMakeFiles/arrow_acero_objlib.dir/asof_join_node.cc.o] Error 1
make[1]: *** [src/arrow/acero/CMakeFiles/arrow_acero_objlib.dir/all] Error 2
make: *** [all] Error 2
```

I tested this on main (commit `72b0346003c23775021eef6f0f801cb6b44307a5`).

`Apple clang version 17.0.0 (clang-1700.0.13.5)`

This originally surfaced for me when using with the dependency manager conan, which obfuscated the error quite a bit.

### Component(s)

C++

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.