Skip to content

Move up to C++17 #1300

@SteveBronder

Description

@SteveBronder

Description

Jw, what are the blockers that stop us from moving to C++17?

There's a couple features that I think would be nice. From here

  • Nested namespace definitions, e.g., namespace X::Y { … } instead of namespace X { namespace Y { … } }
  • Fold expressions, for variadic templates (ala std::is_arithmetic<Args> &&...)
  • A compile-time static if with the form if constexpr(expression) (No more #ifdefs for the OpenCL code!)
  • copy-initialization and direct-initialization of objects of type T from prvalue expressions of type T (ignoring top-level cv-qualifiers) shall result in no copy or move constructors from the prvalue expression.
  • Additional mathematical special functions, including elliptic integrals and Bessel functions see here

From that same wiki page it looks like we would have to bump up the supported compiler versions?

GCC since version 7 has complete support for C++17. GCC C++ standards status
Clang 5 and later implement all the features of C++17. clang C++ standards status

Current Version:

v2.20.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions