abseil / abseil/abseil-cpp

absl::btree_map: constexpr variable 'kFirst' must be initialized by a constant expression

Đang mở
#729 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
C++
Star
18.1k
Fork
3.2k
Merge trung bình
20 giờ 36 phút
Pull request đã merge (30 ngày)
1

Mô tả

Hi I am receiving a compiler error use of aseil::btree_map running it through clang.

absl/container/internal/container_memory.h:259:27: error: constexpr variable 'kFirst' must be initialized by a constant expression [clang-diagnostic-error]
static constexpr size_t kFirst = offsetof(Pair, first);

The offending code is:
`
template
struct OffsetOf::type> {
static constexpr size_t kFirst = offsetof(Pair, first);
static constexpr size_t kSecond = offsetof(Pair, second);
};
`

And seems to be caused by the use of 'offsetof', which makes use of reinterpret_cast:
`#define offsetof(s,m) ((::size_t)&reinterpret_cast((((s*)0)->m)))`

Which is not allowed in a constexpr expression.

Any ideas how to fix this?

The abseil sdk is from 2020-04-01
And using llvm10

Thanks

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.