GettingStartedWithModernCpp issueshttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues2024-03-26T17:22:15+01:00https://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/132In types, mention explicitly that comparison between floating points is not safe2024-03-26T17:22:15+01:00GILLES SebastienIn types, mention explicitly that comparison between floating points is not safeGILLES SebastienGILLES Sebastienhttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/128Add `static_assert(std::is_convertible<self*, parent*>());` trick in inheritance2024-03-13T09:39:22+01:00GILLES SebastienAdd `static_assert(std::is_convertible<self*, parent*>());` trick in inheritancehttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/115For smaller docker containers, we should give a try to micromamba2024-03-05T14:16:12+01:00ROUVREAU VincentFor smaller docker containers, we should give a try to micromambacf. [micromamba-docker](https://micromamba-docker.readthedocs.io/en/latest/) project
Xeus-cling image is 3.8 Gocf. [micromamba-docker](https://micromamba-docker.readthedocs.io/en/latest/) project
Xeus-cling image is 3.8 Gohttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/106Highlight somewhere if not already done to use traits / aliases whenever poss...2023-11-29T13:39:20+01:00GILLES SebastienHighlight somewhere if not already done to use traits / aliases whenever possible to ease future refactoringGILLES SebastienGILLES Sebastienhttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/101Explore Jupyter alternatives2024-03-18T20:12:14+01:00STEFF LaurentExplore Jupyter alternativesFor example with Coliru API and what is done on cppreference:
https://en.cppreference.com/w/cpp/language/declarationsFor example with Coliru API and what is done on cppreference:
https://en.cppreference.com/w/cpp/language/declarationsSTEFF LaurentSTEFF Laurenthttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/94In ErrorHandling, should we mention `#error` primitive ?2024-02-26T15:42:08+01:00ROUVREAU VincentIn ErrorHandling, should we mention `#error` primitive ?This primitive can be usefull (to be discussed) if you you don't want to do `static_assert(false)`, for instance:
```cpp
#include <Eigen/src/Core/util/Macros.h> // for EIGEN_VERSION_AT_LEAST
#if !EIGEN_VERSION_AT_LEAST(3,1,0)
# error o...This primitive can be usefull (to be discussed) if you you don't want to do `static_assert(false)`, for instance:
```cpp
#include <Eigen/src/Core/util/Macros.h> // for EIGEN_VERSION_AT_LEAST
#if !EIGEN_VERSION_AT_LEAST(3,1,0)
# error only available for Eigen3 >= 3.1.0 installed
#endif
```ROUVREAU VincentROUVREAU Vincenthttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/83Describe optimization types for compiler2022-10-18T15:29:39+02:00STEFF LaurentDescribe optimization types for compilersize, execution time, memory usage, compile time
https://www.rapidtables.com/code/linux/gcc/gcc-o.htmlsize, execution time, memory usage, compile time
https://www.rapidtables.com/code/linux/gcc/gcc-o.htmlhttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/80Move semantics: review RVO, NRVO and copy ellision.2024-02-19T10:12:50+01:00STEFF LaurentMove semantics: review RVO, NRVO and copy ellision.STEFF LaurentSTEFF Laurenthttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/77Exception: question about stacktrace like Java2024-02-19T10:12:15+01:00STEFF LaurentException: question about stacktrace like Javahttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/66Polymorphism: consider rewriting it to use videogame example instead of vehicle?2024-02-19T10:08:04+01:00GILLES SebastienPolymorphism: consider rewriting it to use videogame example instead of vehicle?STEFF LaurentSTEFF Laurenthttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/62Encapsulation: Talk quickly about testing2024-02-09T08:10:07+01:00STEFF LaurentEncapsulation: Talk quickly about testingIt might be too soon and confusing ?It might be too soon and confusing ?https://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/58Type: rephrase the casting for division2024-02-16T11:06:52+01:00STEFF LaurentType: rephrase the casting for division* The hands-on is after the notebook
* hint the hands-on there is already a phrasing about this* The hands-on is after the notebook
* hint the hands-on there is already a phrasing about thishttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/57questions about lambda2024-02-16T11:25:24+01:00STEFF Laurentquestions about lambda* student question: captured variable list separator
* I think they are not closures like on other language (let's discuss it ;)
* The 3rd argument of sort ? (function pointer ok, function object ok, plain function ?)* student question: captured variable list separator
* I think they are not closures like on other language (let's discuss it ;)
* The 3rd argument of sort ? (function pointer ok, function object ok, plain function ?)https://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/56Function overload: a word about only in C++, maybe name mangling, and warning...2024-02-19T10:05:14+01:00STEFF LaurentFunction overload: a word about only in C++, maybe name mangling, and warning about using c compiler with c++ codehttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/45Provide a notebook in appendix to explain how to print a container?2022-09-21T09:28:10+02:00GILLES SebastienProvide a notebook in appendix to explain how to print a container?https://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/44Add initializer_list?2024-02-27T17:01:41+01:00GILLES SebastienAdd initializer_list?In containers notebook, we don't mention it but we cheat a bit: we present
````
std::vector<int> foo { 3, 5, 6 };
````
but we don't explain why braces (and from what we said so far students could infer - wrongly - that parenthesis woul...In containers notebook, we don't mention it but we cheat a bit: we present
````
std::vector<int> foo { 3, 5, 6 };
````
but we don't explain why braces (and from what we said so far students could infer - wrongly - that parenthesis would be fine as well).
We should probably add a paragraph to explain `std::initializer_list` here... (and sorry because unless I'm mistaken I said the opposite few weeks ago).
@steff, I put you in charge as it seems to me you were the one speaking about it; if not the case just reassign the ticket to me. Thanks!GILLES SebastienGILLES Sebastienhttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/40C++ nice features we might evoke briefly (if not already done)2024-03-22T09:46:13+01:00GILLES SebastienC++ nice features we might evoke briefly (if not already done)- StrongTypes
- Curried functions- StrongTypes
- Curried functionshttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/33New notebook to give an hint about how to write tests?2024-02-09T08:10:33+01:00GILLES SebastienNew notebook to give an hint about how to write tests?https://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/23In real environment: assert use case / regarding unit test2024-02-19T09:59:45+01:00STEFF LaurentIn real environment: assert use case / regarding unit testExample (to elaborate):
* existing constructor which does call special private init functions
* existing constructor with existing unit tests
* a new developer creates a new constructor and forget adding unit test for itExample (to elaborate):
* existing constructor which does call special private init functions
* existing constructor with existing unit tests
* a new developer creates a new constructor and forget adding unit test for itSTEFF LaurentSTEFF Laurenthttps://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp/-/issues/17In Real Environment: add description of phases like preprocessor, compiler, l...2024-03-15T17:47:46+01:00STEFF LaurentIn Real Environment: add description of phases like preprocessor, compiler, linkerSomething a bit less advanced but in the same mindset as:
https://www.toptal.com/c-plus-plus/c-plus-plus-understanding-compilation
It may be too late for the training next week: I would still explain this a bit without written content.Something a bit less advanced but in the same mindset as:
https://www.toptal.com/c-plus-plus/c-plus-plus-understanding-compilation
It may be too late for the training next week: I would still explain this a bit without written content.STEFF LaurentSTEFF Laurent