View Issue Details

IDProjectCategoryView StatusLast Update
0001240OpenMPT[All Projects] libopenmptpublic2019-07-29 20:47
ReportermanxAssigned Tomanx 
PrioritynormalSeverityminorReproducibilityalways
Status assignedResolutionopen 
Product VersionOpenMPT 1.29.00.* (current testing) 
Target VersionOpenMPT 1.29 / libopenmpt 0.5 (goals)Fixed in Version 
Summary0001240: Modernize C++ API
Description

We should support more modern language features in the C++ API as appropriate:

C++11:

  • enum class for profile_file_header flags and result
  • enum class for module::render_param
  • enum class for module::command_index
  • inline namespace for API/ABI versioning (requires mirroring of the complete API though, might be worthwhile for 1.0 though)
  • constexpr library API version information (in addition to preprocessor)

C++14:

C++17:

  • std::byte buffer for module::module()

C++20:

  • std::span buffer for module::module()
  • std::span for module::read buffers
  • std::u8string for all strings
TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Relationships

related to 0001241 assignedmanx std::string_view for ctl key, and non-string overloads for ctl_get and ctl_set 

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2019-07-29 20:23 manx New Issue
2019-07-29 20:23 manx Status new => assigned
2019-07-29 20:23 manx Assigned To => manx
2019-07-29 20:47 manx Relationship added related to 0001241