Skip to content

[C++] CRAN build fail on missing std::floating_point concept #49176

@jonkeane

Description

@jonkeane

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

I suspect this is something specific to the MacOS version + clang that is being used. On this CRAN runner it is macOS 13.3 and Apple clang version 14.0.0 (AKA Apple Clang 1403.0.22.14.1).

Most of the code that is erroring looks like it came in #48459 so maybe @zanmato1984 might have an idea what's up here?

From the CRAN build logs:

[ 88%] Building CXX object src/arrow/CMakeFiles/arrow_compute_objlib.dir/compute/kernels/hash_aggregate.cc.o
 [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/compute/kernels/hash_aggregate.cc:281:38:  [0m [0;1;31merror:  [0m [1mno template named 'floating_point' in namespace 'std'; did you mean 'is_floating_point'? [0m
concept CFloatingPointConcept = std::floating_point<T> || std::same_as<T, util::Float16>;
 [0;1;32m                                ~~~~~^~~~~~~~~~~~~~
 [0m [0;32m                                     is_floating_point
 [0m [1m/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk/usr/include/c++/v1/type_traits:860:50:  [0m [0;1;30mnote:  [0m'is_floating_point' declared here [0m
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_floating_point
 [0;1;32m                                                 ^
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/compute/kernels/hash_aggregate.cc:281:56:  [0m [0;1;31merror:  [0m [1mexpected '(' for function-style cast or type construction [0m
concept CFloatingPointConcept = std::floating_point<T> || std::same_as<T, util::Float16>;
 [0;1;32m                                ~~~~~~~~~~~~~~~~~~~~~~ ^
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/compute/kernels/hash_aggregate.cc:299:11:  [0m [0;1;31merror:  [0m [1munknown type name 'CFloatingPointConcept'; did you mean 'FloatingPointType'? [0m
template <CFloatingPointConcept CType>
 [0;1;32m          ^~~~~~~~~~~~~~~~~~~~~
 [0m [0;32m          FloatingPointType
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/type.h:336:20:  [0m [0;1;30mnote:  [0m'FloatingPointType' declared here [0m
class ARROW_EXPORT FloatingPointType : public NumberType {
 [0;1;32m                   ^
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/compute/kernels/hash_aggregate.cc:299:33:  [0m [0;1;31merror:  [0m [1mnon-type template parameter has non-literal type 'arrow::FloatingPointType' [0m
template <CFloatingPointConcept CType>
 [0;1;32m                                ^
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/type.h:336:20:  [0m [0;1;30mnote:  [0m'FloatingPointType' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors [0m
class ARROW_EXPORT FloatingPointType : public NumberType {
 [0;1;32m                   ^
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/compute/kernels/hash_aggregate.cc:300:20:  [0m [0;1;31merror:  [0m [1mtemplate argument for template type parameter must be a type [0m
struct AntiExtrema<CType> {
 [0;1;32m                   ^~~~~
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/compute/kernels/hash_aggregate.cc:287:20:  [0m [0;1;30mnote:  [0mtemplate parameter is declared here [0m
template <typename CType>
 [0;1;32m                   ^
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/compute/kernels/hash_aggregate.cc:317:11:  [0m [0;1;31merror:  [0m [1munknown type name 'CFloatingPointConcept'; did you mean 'FloatingPointType'? [0m
template <CFloatingPointConcept CType>
 [0;1;32m          ^~~~~~~~~~~~~~~~~~~~~
 [0m [0;32m          FloatingPointType
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/type.h:336:20:  [0m [0;1;30mnote:  [0m'FloatingPointType' declared here [0m
class ARROW_EXPORT FloatingPointType : public NumberType {
 [0;1;32m                   ^
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/compute/kernels/hash_aggregate.cc:317:33:  [0m [0;1;31merror:  [0m [1mnon-type template parameter has non-literal type 'arrow::FloatingPointType' [0m
template <CFloatingPointConcept CType>
 [0;1;32m                                ^
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/type.h:336:20:  [0m [0;1;30mnote:  [0m'FloatingPointType' is not literal because it is not an aggregate and has no constexpr constructors other than copy or move constructors [0m
class ARROW_EXPORT FloatingPointType : public NumberType {
 [0;1;32m                   ^
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/compute/kernels/hash_aggregate.cc:318:17:  [0m [0;1;31merror:  [0m [1mtemplate argument for template type parameter must be a type [0m
struct MinMaxOp<CType> {
 [0;1;32m                ^~~~~
 [0m [1m/Volumes/Builds/packages/big-sur-x86_64/results/4.5/arrow.Rcheck/00_pkg_src/arrow/tools/cpp/src/arrow/compute/kernels/hash_aggregate.cc:311:20:  [0m [0;1;30mnote:  [0mtemplate parameter is declared here [0m
template <typename CType>
 [0;1;32m                   ^
 [0m8 errors generated.
make[2]: *** [src/arrow/CMakeFiles/arrow_compute_objlib.dir/compute/kernels/hash_aggregate.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....

Component(s)

C++

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions