{"id":17049812,"url":"https://github.com/marzer/noexcept","last_synced_at":"2025-10-12T12:38:14.671Z","repository":{"id":176083694,"uuid":"654943564","full_name":"marzer/noexcept","owner":"marzer","description":"Type traits for manipulating `noexcept` in C++17.","archived":false,"fork":false,"pushed_at":"2023-06-22T14:37:46.000Z","size":60,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-28T11:18:21.490Z","etag":null,"topics":["cpp"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marzer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"marzer"}},"created_at":"2023-06-17T12:04:10.000Z","updated_at":"2024-02-10T07:53:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"d1301249-2e04-45d4-a78b-9b6330b967cf","html_url":"https://github.com/marzer/noexcept","commit_stats":null,"previous_names":["marzer/noexcept"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marzer%2Fnoexcept","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marzer%2Fnoexcept/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marzer%2Fnoexcept/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marzer%2Fnoexcept/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marzer","download_url":"https://codeload.github.com/marzer/noexcept/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245056421,"owners_count":20553853,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp"],"created_at":"2024-10-14T09:55:26.501Z","updated_at":"2025-10-12T12:38:09.632Z","avatar_url":"https://github.com/marzer.png","language":"C++","funding_links":["https://github.com/sponsors/marzer"],"categories":[],"sub_categories":[],"readme":"# `mz::noexcept` [![MIT license](docs/images/badge-license-MIT.svg)](./LICENSE) [![C++17](docs/images/badge-C++17.svg)][cpp_compilers] [![Sponsor](docs/images/badge-sponsor.svg)][sponsor] [![Gitter](docs/images/badge-gitter.svg)][gitter]\n\nTraits for manipulating `noexcept` in C++'s type system.\n\nRequires C++17.\n\n\u003cbr\u003e\n\n## Synopsis\n\n```cpp\nnamespace mz\n{\n\t// has member 'type' as T with the `noexcept` specifier added\n\t//\n\t// ::type will simply be T if T is not a function or\n\t// (possibly cv-qualified) member function pointer type.\n\ttemplate \u003ctypename T\u003e\n\tstruct add_noexcept;\n\n\t// type alias for directly unpacking add_noexcept\n\t// (in the same vein as std::add_const / std::add_const_t, etc.)\n\ttemplate \u003ctypename T\u003e\n\tusing add_noexcept_t = typename add_noexcept\u003cT\u003e::type;\n\n\t// has member 'type' as T with the `noexcept` specifier removed\n\t//\n\t// ::type will simply be T if T is not a function or\n\t// (possibly cv-qualified) member function pointer type.\n\ttemplate \u003ctypename T\u003e\n\tstruct remove_noexcept;\n\n\t// type alias for directly unpacking remove_noexcept\n\t// (in the same vein as std::remove_const / std::remove_const_t, etc.)\n\ttemplate \u003ctypename T\u003e\n\tusing remove_noexcept_t = typename remove_noexcept\u003cT\u003e::type;\n\n\t// has member 'value' indicating if T was a function\n\t// or member function pointer type with the noexcept specifier present.\n\ttemplate \u003ctypename T\u003e\n\tstruct is_noexcept;\n\n\t// variable template containing the value of is_noexcept\n\t// (in the same vein as std::is_const / std::is_const_v, etc.)\n\ttemplate \u003ctypename T\u003e\n\tinline constexpr bool is_noexcept_v = is_noexcept\u003cT\u003e::value;\n}\n```\n\n\u003cbr\u003e\n\n## Usage\n\nThe library is a single header so the easiest way to use it is to drop [noexcept.hpp] somewhere in your project.\n\nAlternatively you can add `include` to your include paths then `#include \u003cmz/noexcept.hpp\u003e`\n\nThere is also support for use as a `meson.build` subproject.\n\n\u003cbr\u003e\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n\n\u003cbr\u003e\n\n## Contributing\n\nThere are three ways you can contribute:\n\n1. Reporting bug or making feature requests [here](https://github.com/marzer/noexcept/issues/new)\n2. Opening a pull request (⚠\u0026#xFE0F; _caveat - see below_)\n3. Becoming a [sponsor] ❤\u0026#xFE0F;\n\n\u003cbr\u003e\n\n## WG21 C++ Proposal\n\nThis project is an implementation of a C++ library proposal I'm in the process of\nputting together, with the intent of having these traits become part of the standard's\n`\u003ctype_traits\u003e`library. You can read the paper [here](https://marzer.github.io/noexcept/).\n\n[noexcept.hpp]: include/mz/noexcept.hpp\n[license]: ./LICENSE\n[cpp_compilers]: https://en.cppreference.com/w/cpp/compiler_support\n[gitter]: https://gitter.im/marzer/community\n[sponsor]: https://github.com/sponsors/marzer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarzer%2Fnoexcept","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarzer%2Fnoexcept","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarzer%2Fnoexcept/lists"}