{"action":"created","issue":{"url":"https://api.github.com/repos/nlohmann/json/issues/338","repository_url":"https://api.github.com/repos/nlohmann/json","labels_url":"https://api.github.com/repos/nlohmann/json/issues/338/labels{/name}","comments_url":"https://api.github.com/repos/nlohmann/json/issues/338/comments","events_url":"https://api.github.com/repos/nlohmann/json/issues/338/events","html_url":"https://github.com/nlohmann/json/pull/338","id":183944166,"number":338,"title":"Feature/user defined types","user":{"login":"theodelrieu","id":15652306,"avatar_url":"https://avatars.githubusercontent.com/u/15652306?v=3","gravatar_id":"","url":"https://api.github.com/users/theodelrieu","html_url":"https://github.com/theodelrieu","followers_url":"https://api.github.com/users/theodelrieu/followers","following_url":"https://api.github.com/users/theodelrieu/following{/other_user}","gists_url":"https://api.github.com/users/theodelrieu/gists{/gist_id}","starred_url":"https://api.github.com/users/theodelrieu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/theodelrieu/subscriptions","organizations_url":"https://api.github.com/users/theodelrieu/orgs","repos_url":"https://api.github.com/users/theodelrieu/repos","events_url":"https://api.github.com/users/theodelrieu/events{/privacy}","received_events_url":"https://api.github.com/users/theodelrieu/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nlohmann/json/labels/enhancement","name":"enhancement","color":"207de5"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":13,"created_at":"2016-10-19T12:11:15Z","updated_at":"2016-10-23T16:23:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/nlohmann/json/pulls/338","html_url":"https://github.com/nlohmann/json/pull/338","diff_url":"https://github.com/nlohmann/json/pull/338.diff","patch_url":"https://github.com/nlohmann/json/pull/338.patch"},"body":"WIP: This PR is **NOT** ready to be merged, its purpose is to facilitate review/discussions.\r\n\r\n## Files to change\r\n\r\nThere are currently two files which need to be edited:\r\n\r\n1. [`src/json.hpp.re2c`](https://github.com/nlohmann/json/blob/master/src/json.hpp.re2c) (note the `.re2c` suffix) - This file contains a comment section which describes the JSON lexic. This section is translated by [`re2c`](http://re2c.org) into file [`src/json.hpp`](https://github.com/nlohmann/json/blob/master/src/json.hpp) which is plain \"vanilla\" C++11 code. (In fact, the generated lexer consists of some hundred lines of `goto`s, which is a hint you never want to edit this file...).\r\n\r\n   If you only edit file `src/json.hpp` (without the `.re2c` suffix), your changes will be overwritten as soon as the lexer is touched again. To generate the `src/json.hpp` file which is actually used during compilation of the tests and all other code, please execute\r\n\r\n   ```sh\r\n   make re2c\r\n   ```\r\n\r\n   To run [`re2c`](http://re2c.org) and generate/overwrite file `src/json.hpp` with your changes in file `src/json.hpp.re2c`.\r\n\r\n\r\n2. [`test/src/unit.cpp`](https://github.com/nlohmann/json/blob/master/test/unit.cpp) - This contains the [Catch](https://github.com/philsquared/Catch) unit tests which currently cover [100 %](https://coveralls.io/github/nlohmann/json) of the library's code.\r\n\r\n   If you add or change a feature, please also add a unit test to this file. The unit tests can be compiled with\r\n\r\n   ```sh\r\n   make\r\n   ```\r\n\r\n   and can be executed with\r\n\r\n   ```sh\r\n   ./json_unit\r\n   ```\r\n\r\n   The test cases are also executed with several different compilers on [Travis](https://travis-ci.org/nlohmann/json) once you open a pull request.\r\n\r\nPlease understand that I cannot accept pull requests changing only file `src/json.hpp`.\r\n\r\n\r\n## Note\r\n\r\n- If you open a pull request, the code will be automatically tested with [Valgrind](http://valgrind.org)'s Memcheck tool to detect memory leaks. Please be aware that the execution with Valgrind _may_ in rare cases yield different behavior than running the code directly. This can result in failing unit tests which run successfully without Valgrind.\r\n\r\n## Please don't\r\n\r\n- Only make changes to file `src/json.hpp` -- please read the paragraph above and understand why `src/json.hpp.re2c` exists.\r\n- The C++11 support varies between different **compilers** and versions. Please note the [list of supported compilers](https://github.com/nlohmann/json/blob/master/README.md#supported-compilers). Some compilers like GCC 4.8 (and earlier), Clang 3.3 (and earlier), or Microsoft Visual Studio 13.0 and earlier are known not to work due to missing or incomplete C++11 support. Please refrain from proposing changes that work around these compiler's limitations with `#ifdef`s or other means.\r\n- Specifically, I am aware of compilation problems with **Microsoft Visual Studio** (there even is an [issue label](https://github.com/nlohmann/json/issues?utf8=✓&q=label%3A%22visual+studio%22+) for these kind of bugs). I understand that even in 2016, complete C++11 support isn't there yet. But please also understand that I do not want to drop features or uglify the code just to make Microsoft's sub-standard compiler happy. The past has shown that there are ways to express the functionality such that the code compiles with the most recent MSVC - unfortunately, this is not the main objective of the project.\r\n- Please refrain from proposing changes that would **break [JSON](http://json.org) conformance**. If you propose a conformant extension of JSON to be supported by the library, please motivate this extension.\r\n- Please do not open pull requests that address **multiple issues**.\r\n"},"comment":{"url":"https://api.github.com/repos/nlohmann/json/issues/comments/255597902","html_url":"https://github.com/nlohmann/json/pull/338#issuecomment-255597902","issue_url":"https://api.github.com/repos/nlohmann/json/issues/338","id":255597902,"user":{"login":"coveralls","id":2354108,"avatar_url":"https://avatars.githubusercontent.com/u/2354108?v=3","gravatar_id":"","url":"https://api.github.com/users/coveralls","html_url":"https://github.com/coveralls","followers_url":"https://api.github.com/users/coveralls/followers","following_url":"https://api.github.com/users/coveralls/following{/other_user}","gists_url":"https://api.github.com/users/coveralls/gists{/gist_id}","starred_url":"https://api.github.com/users/coveralls/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coveralls/subscriptions","organizations_url":"https://api.github.com/users/coveralls/orgs","repos_url":"https://api.github.com/users/coveralls/repos","events_url":"https://api.github.com/users/coveralls/events{/privacy}","received_events_url":"https://api.github.com/users/coveralls/received_events","type":"User","site_admin":false},"created_at":"2016-10-23T16:23:47Z","updated_at":"2016-10-23T16:23:47Z","body":"\n[![Coverage Status](https://coveralls.io/builds/8466657/badge)](https://coveralls.io/builds/8466657)\n\nCoverage remained the same at 100.0% when pulling **b81c2a22ea0a0387f040f67e1613757e65cd62cd on theodelrieu:feature/user_defined_types** into **e310850353216d87023e076e21c7a9d9a4f131c9 on nlohmann:develop**.\n"}}
{"actor":{"display_login":"coveralls"}}