Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Adopt C++17 as the global Jamulus language-standard baseline

未关闭
#3,938 20 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 3 天内回复

@ann0see 已经在做这个了。

开始于 2026年9月6日。

评估

这个 Issue 还没有评估数据。

描述

AI refactoring

Summary

Move Jamulus to a C++17 language-standard baseline on every supported platform.

The current configuration is inconsistent. Jamulus.pro enables C++17 for Windows and Android, but its Unix branch still enables C++11. The project documentation still requires C++11 compatibility.

This migration must be completed in a separate change from PR #3787.

Required changes

  1. Update Jamulus.pro.

    • Replace the Unix CONFIG += c++11 setting at Lines 311-313 with C++17.
    • Remove the platform-specific C++17 selection at Lines 106-108 and Lines 271-274 if the global C++17 setting makes those branches redundant.
    • Keep all existing non-language-standard platform configuration unchanged.
    • Confirm that qmake passes the C++17 language-standard option for Windows, Linux, macOS, iOS, and Android.
  2. Update the contributor policy.

    • Replace Maintain C++11 compatibility throughout the code. in CONTRIBUTING.md with the C++17 baseline requirement.
    • Replace the C++11/Android exception in AGENTS.md with the C++17 baseline requirement.
  3. Review project-owned build instructions and automation.

    • Review COMPILING.md, platform deployment scripts, and GitHub Actions workflows.
    • Document any minimum compiler, Xcode, MSVC, Android NDK, or Qt toolchain version that is necessary for C++17.
    • Update the affected instructions and CI setup when an existing supported toolchain cannot compile C++17.
    • Do not modify language-standard settings inside vendored dependencies under libs/ unless a dependency build is directly invoked by Jamulus and requires an explicit compatible setting.
  4. Validate the supported build matrix.

    • Run or confirm CI builds for Linux, Windows, macOS, iOS, and Android with the global C++17 setting.
    • Confirm both reverb-enabled and CONFIG+=noreverb configurations compile where applicable.
    • Record any platform that needs a separate compatibility decision.

Rationale

src/plugins/audioreverb.h in PR #3787 uses a C++17 inline variable. A global C++17 baseline removes the Unix language-standard mismatch and allows the project to use one documented standard.

Acceptance criteria

  • Jamulus.pro selects C++17 for all Jamulus targets.
  • No project-owned document states that C++11 compatibility is required.
  • The supported-platform build documentation states the required C++17-capable toolchains.
  • The CI matrix completes successfully on all supported platforms.
  • Vendored dependency configuration remains unchanged unless it is necessary for a Jamulus build.

References

主要语言
C
星标
1.1k
派生
248
平均合并
2 天 22 小时
30 天内合并 PR
6

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

jamulussoftware/jamulus 的其他 Issue

查看 jamulussoftware/jamulus 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。