fix: correct mismatched class and struct declarations (#911)
Keep Projections and TableMetadataBuilder::Impl declarations consistent
with their definitions to avoid mismatched-tag diagnostics and potential
link failures under the Microsoft C++ ABI.
diff --git a/src/iceberg/expression/projections.h b/src/iceberg/expression/projections.h
index b2022c4..59edc92 100644
--- a/src/iceberg/expression/projections.h
+++ b/src/iceberg/expression/projections.h
@@ -43,7 +43,7 @@
Result<std::shared_ptr<Expression>> Project(const std::shared_ptr<Expression>& expr);
private:
- friend class Projections;
+ friend struct Projections;
/// \brief Create a ProjectionEvaluator.
///
diff --git a/src/iceberg/table_metadata.h b/src/iceberg/table_metadata.h
index fd2c271..6e2d9fe 100644
--- a/src/iceberg/table_metadata.h
+++ b/src/iceberg/table_metadata.h
@@ -489,7 +489,7 @@
explicit TableMetadataBuilder(const TableMetadata* base);
/// Internal state members
- struct Impl;
+ class Impl;
std::unique_ptr<Impl> impl_;
};