Skip to content

Commit 0a807ca

Browse files
authored
chore: bump C++ standard to 23 (#139)
1 parent ef4c124 commit 0a807ca

28 files changed

+39
-3124
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ project(Iceberg
2828
DESCRIPTION "Iceberg C++ Project"
2929
LANGUAGES CXX)
3030

31-
set(CMAKE_CXX_STANDARD 20)
31+
set(CMAKE_CXX_STANDARD 23)
3232
set(CMAKE_CXX_STANDARD_REQUIRED ON)
3333
set(CMAKE_CXX_EXTENSIONS OFF)
3434
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

LICENSE

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -202,34 +202,6 @@
202202

203203
--------------------------------------------------------------------------------
204204

205-
The file src/iceberg/expected.h contains code adapted from
206-
207-
https://github.com/zeus-cpp/expected
208-
209-
with the following license (MIT)
210-
211-
Copyright (c) 2024 zeus-cpp
212-
213-
Permission is hereby granted, free of charge, to any person obtaining a copy
214-
of this software and associated documentation files (the "Software"), to deal
215-
in the Software without restriction, including without limitation the rights
216-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
217-
copies of the Software, and to permit persons to whom the Software is
218-
furnished to do so, subject to the following conditions:
219-
220-
The above copyright notice and this permission notice shall be included in all
221-
copies or substantial portions of the Software.
222-
223-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
224-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
225-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
226-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
227-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
228-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
229-
SOFTWARE.
230-
231-
--------------------------------------------------------------------------------
232-
233205
3rdparty dependency nlohmann-json is statically linked in certain binary
234206
distributions. nlohmann-json has the following license:
235207

NOTICE

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ Copyright 2024-2025 The Apache Software Foundation
44
This product includes software developed at
55
The Apache Software Foundation (http://www.apache.org/).
66

7-
This product includes code from zeus-cpp
8-
* Copyright (c) 2024 zeus-cpp
9-
* https://github.com/zeus-cpp/expected
10-
117
This product includes code from smhasher
128
* MurmurHash3 was written by Austin Appleby, and is placed in the public
139
* domain. The author hereby disclaims copyright to this source code.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ C++ implementation of [Apache Iceberg™](https://iceberg.apache.org/).
2424
## Requirements
2525

2626
- CMake 3.25 or higher
27-
- C++20 compliant compiler
27+
- C++23 compliant compiler
2828

2929
## Build
3030

cmake_modules/IcebergThirdpartyToolchain.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ function(resolve_arrow_dependency)
9999
fetchcontent_declare(VendoredArrow
100100
${FC_DECLARE_COMMON_OPTIONS}
101101
GIT_REPOSITORY https://github.com/apache/arrow.git
102-
GIT_TAG 5f0aeb5de53fb25b59a52661a80071faef99a4a4
102+
GIT_TAG f12356adaaabea86638407e995e73215dbb58bb2
103103
#URL ${ARROW_SOURCE_URL}
104104
#URL_HASH "SHA256=${ICEBERG_ARROW_BUILD_SHA256_CHECKSUM}"
105105
SOURCE_SUBDIR

example/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ cmake_minimum_required(VERSION 3.25)
2020

2121
project(example)
2222

23-
set(CMAKE_CXX_STANDARD 20)
23+
set(CMAKE_CXX_STANDARD 23)
2424

2525
find_package(Iceberg CONFIG REQUIRED)
2626

src/iceberg/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ set(ICEBERG_SOURCES
4646
type.cc
4747
util/murmurhash3_internal.cc
4848
util/timepoint.cc
49-
util/unreachable.cc
5049
util/gzip_internal.cc)
5150

5251
set(ICEBERG_STATIC_BUILD_INTERFACE_LIBS)

src/iceberg/arrow/arrow_error_transform_internal.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ inline ErrorKind ToErrorKind(const ::arrow::Status& status) {
3838
#define ICEBERG_ARROW_ASSIGN_OR_RETURN_IMPL(result_name, lhs, rexpr, error_transform) \
3939
auto&& result_name = (rexpr); \
4040
if (!result_name.ok()) { \
41-
return unexpected<Error>{{.kind = error_transform(result_name.status()), \
42-
.message = result_name.status().ToString()}}; \
41+
return std::unexpected<Error>{{.kind = error_transform(result_name.status()), \
42+
.message = result_name.status().ToString()}}; \
4343
} \
4444
lhs = std::move(result_name).ValueOrDie();
4545

@@ -51,7 +51,7 @@ inline ErrorKind ToErrorKind(const ::arrow::Status& status) {
5151
do { \
5252
auto&& _status = (expr); \
5353
if (!_status.ok()) { \
54-
return unexpected<Error>{ \
54+
return std::unexpected<Error>{ \
5555
{.kind = ToErrorKind(_status), .message = _status.ToString()}}; \
5656
} \
5757
} while (0)

src/iceberg/avro/avro_reader.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,8 @@ class AvroReader::Impl {
227227
std::unique_ptr<ReadContext> context_;
228228
};
229229

230+
AvroReader::~AvroReader() = default;
231+
230232
Result<std::optional<ArrowArray>> AvroReader::Next() { return impl_->Next(); }
231233

232234
Result<ArrowSchema> AvroReader::Schema() { return impl_->Schema(); }

src/iceberg/avro/avro_reader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class ICEBERG_BUNDLE_EXPORT AvroReader : public Reader {
2929
public:
3030
AvroReader() = default;
3131

32-
~AvroReader() override = default;
32+
~AvroReader() override;
3333

3434
Status Open(const ReaderOptions& options) final;
3535

0 commit comments

Comments
 (0)