Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build errors on macOS with Apple clang version 16.0.0 #35

Closed
ClausKlein opened this issue Nov 25, 2024 · 1 comment
Closed

build errors on macOS with Apple clang version 16.0.0 #35

ClausKlein opened this issue Nov 25, 2024 · 1 comment

Comments

@ClausKlein
Copy link
Contributor

[2/4] Building CXX object examples/CMakeFiles/beman.inplace_vector.examples.fibonacci.dir/fibonacci.cpp.o
FAILED: examples/CMakeFiles/beman.inplace_vector.examples.fibonacci.dir/fibonacci.cpp.o 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -I/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk -mmacosx-version-min=14.7 -MD -MT examples/CMakeFiles/beman.inplace_vector.examples.fibonacci.dir/fibonacci.cpp.o -MF examples/CMakeFiles/beman.inplace_vector.examples.fibonacci.dir/fibonacci.cpp.o.d -o examples/CMakeFiles/beman.inplace_vector.examples.fibonacci.dir/fibonacci.cpp.o -c /Users/clausklein/Workspace/cpp/beman-project/inplace_vector/examples/fibonacci.cpp
In file included from /Users/clausklein/Workspace/cpp/beman-project/inplace_vector/examples/fibonacci.cpp:5:
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:26:16: warning: nested namespace definition is a C++17 extension; define each namespace separately [-Wc++17-extensions]
   26 | namespace beman::inplace_vector {
      |                ^~~~~~~~~~~~~~~~
      |                 { namespace inplace_vector
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:46:12: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
   46 | using If = typename std::conditional<Condition, TrueType, FalseType>::type;
      |            ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:52:5: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
   52 |     If<Capacity <= std::numeric_limits<uint8_t>::max(), uint8_t,
      |     ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:55:22: error: a space is required between consecutive right angle brackets (use '> >')
   55 |              uint64_t>>>;
      |                      ^~
      |                      > > 
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:60:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
   60 |   using size_type = std::size_t;
      |                     ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:61:30: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
   61 |   using internal_size_type = inplace_vector_internal_size_type<Capacity>;
      |                              ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:63:3: error: unknown type name 'alignas'
   63 |   alignas(T) unsigned char elems[Capacity * sizeof(T)] = {};
      |   ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:63:11: error: declaration of 'T' shadows template parameter
   63 |   alignas(T) unsigned char elems[Capacity * sizeof(T)] = {};
      |           ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:58:20: note: template parameter is declared here
   58 | template <typename T, std::size_t Capacity>
      |                    ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:63:13: error: expected ';' at end of declaration list
   63 |   alignas(T) unsigned char elems[Capacity * sizeof(T)] = {};
      |             ^
      |             ;
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:64:22: error: function definition does not declare parameters
   64 |   internal_size_type size_{0};
      |                      ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:67:3: error: unknown type name 'constexpr'
   67 |   constexpr inplace_vector_destruct_base() = default;
      |   ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:67:13: error: constructor cannot have a return type
   67 |   constexpr inplace_vector_destruct_base() = default;
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:71:18: error: expected ';' at end of declaration list
   71 |           &other) noexcept(std::is_nothrow_copy_constructible_v<T>)
      |                  ^
      |                  ;
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:104:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  104 |   using size_type = std::size_t;
      |                     ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:105:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  105 |   using reference = T &;
      |                     ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:106:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  106 |   using iterator = T *;
      |                    ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:107:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  107 |   using const_iterator = const T *;
      |                          ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:110:3: error: unknown type name 'constexpr'
  110 |   constexpr inplace_vector_base() = default;
      |   ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:110:13: error: constructor cannot have a return type
  110 |   constexpr inplace_vector_base() = default;
      |             ^~~~~~~~~~~~~~~~~~~
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:111:56: error: expected ';' at end of declaration list
  111 |   inplace_vector_base(const inplace_vector_base &other) noexcept(
      |                                                        ^
      |                                                        ;
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:227:16: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  227 |   using base = inplace_vector_base<T, Capacity>;
      |                ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:230:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  230 |   using value_type = T;
      |                      ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:231:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  231 |   using pointer = T *;
      |                   ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:232:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  232 |   using const_pointer = const T *;
      |                         ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:233:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  233 |   using reference = value_type &;
      |                     ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:234:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  234 |   using const_reference = const value_type &;
      |                           ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:235:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  235 |   using size_type = std::size_t;
      |                     ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:236:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  236 |   using difference_type = std::ptrdiff_t;
      |                           ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:237:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  237 |   using iterator = pointer;
      |                    ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:238:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  238 |   using const_iterator = const_pointer;
      |                          ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:239:28: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  239 |   using reverse_iterator = std::reverse_iterator<iterator>;
      |                            ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:240:34: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  240 |   using const_reverse_iterator = std::reverse_iterator<const_iterator>;
      |                                  ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:243:3: error: unknown type name 'constexpr'
  243 |   constexpr inplace_vector() noexcept = default;
      |   ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:243:13: error: constructor cannot have a return type
  243 |   constexpr inplace_vector() noexcept = default;
      |             ^~~~~~~~~~~~~~
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:243:29: error: expected ';' at end of declaration list
  243 |   constexpr inplace_vector() noexcept = default;
      |                             ^
      |                             ;
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:244:3: error: unknown type name 'constexpr'
  244 |   constexpr inplace_vector(const inplace_vector &) = default;
      |   ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:244:13: error: constructor cannot have a return type
  244 |   constexpr inplace_vector(const inplace_vector &) = default;
      |             ^~~~~~~~~~~~~~
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:245:3: error: unknown type name 'constexpr'
  245 |   constexpr inplace_vector(inplace_vector &&) = default;
      |   ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:245:43: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  245 |   constexpr inplace_vector(inplace_vector &&) = default;
      |                                           ^
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:245:13: error: constructor cannot have a return type
  245 |   constexpr inplace_vector(inplace_vector &&) = default;
      |             ^~~~~~~~~~~~~~
/Users/clausklein/Workspace/cpp/beman-project/inplace_vector/include/beman/inplace_vector/inplace_vector.hpp:246:3: error: unknown type name 'constexpr'
  246 |   constexpr inplace_vector &operator=(const inplace_vector &) = default;
      |   ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
22 warnings and 20 errors generated.
ninja: build stopped: subcommand failed.
iMac:inplace_vector clausklein$ git diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0ef0c38..6fbe57a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,12 +56,12 @@ set_target_properties(
     beman.inplace_vector
     PROPERTIES VERIFY_INTERFACE_HEADER_SETS ON
 )
-target_compile_features(
-    beman.inplace_vector
-    INTERFACE
-        "$<$<COMPILE_FEATURES:cxx_std_23>:cxx_std_23>"
-        "$<$<NOT:$<COMPILE_FEATURES:cxx_std_23>>:cxx_std_20>"
-)
+# target_compile_features(
+#     beman.inplace_vector
+#     INTERFACE
+#         "$<$<COMPILE_FEATURES:cxx_std_23>:cxx_std_23>"
+#         "$<$<NOT:$<COMPILE_FEATURES:cxx_std_23>>:cxx_std_20>"
+# )
 
 set(TARGET_PACKAGE_NAME ${PROJECT_NAME}-config)
 set(TARGETS_EXPORT_NAME ${PROJECT_NAME}-targets)
iMac:inplace_vector clausklein$ 
@wusatosi
Copy link
Member

This was for the old implementation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants