platis.solutions
platis.solutions
  • 70
  • 242 539
Error reporting in C++ - Custom classes with error code and content (11/13)
Join me in these bi-weekly series to explore the topic of error reporting in C++.
The focus of this course is the design of functions that normally return a value, but an error may occur so, what should they return instead?
In this video we will be looking at returning a custom class with an error code and the contents of the file.
This approach is very similar to the pair we discussed earlier, with the added benefit of being more expressive and being able to handle multiple errors.
The course is also available FOR FREE on Udemy.
It includes coding exercises so you can practice what you have learned.
Check it out and please consider leaving a review if you find it helpful: www.udemy.com/course/error-reporting-in-cpp/
Переглядів: 27

Відео

Error reporting in C++ - Custom classes with boolean and content (10/13)
Переглядів 5014 днів тому
Join me in these bi-weekly series to explore the topic of error reporting in C . The focus of this course is the design of functions that normally return a value, but an error may occur so, what should they return instead? In this video we will be looking at returning a custom class with a boolean value and the contents of the file. This approach is very similar to the pair we discussed earlier...
Error reporting in C++ - Pair of error code and content (9/13)
Переглядів 4428 днів тому
Join me in these bi-weekly series to explore the topic of error reporting in C . The focus of this course is the design of functions that normally return a value, but an error may occur so, what should they return instead? In this video we will be looking at returning a pair of an error code and the contents of the file. By following this approach, we can both distinguish between different erro...
Error reporting in C++ - Pair of boolean and content (8/13)
Переглядів 50Місяць тому
Join me in these bi-weekly series to explore the topic of error reporting in C . The focus of this course is the design of functions that normally return a value, but an error may occur so, what should they return instead? In this video we will be looking at returning a pair of a boolean value and the contents of the file. The boolean value indicates whether an error has occured or not. This ap...
Error reporting in C++ - Error codes (7/13)
Переглядів 74Місяць тому
Join me in these bi-weekly series to explore the topic of error reporting in C . The focus of this course is the design of functions that normally return a value, but an error may occur so, what should they return instead? In this video we will be looking at reporting errors using error codes. Error codes are typically integers with values that represent different errors. They are readily avail...
Error reporting in C++ - Booleans (6/13)
Переглядів 772 місяці тому
Join me in these bi-weekly series to explore the topic of error reporting in C . The focus of this course is the design of functions that normally return a value, but an error may occur so, what should they return instead? In this video we will be looking at reporting errors using booleans. Booleans are a built-in type that can either be true or false. This approach is simple to implement and u...
Error reporting in C++ - Optional values (5/13)
Переглядів 692 місяці тому
Join me in these bi-weekly series to explore the topic of error reporting in C . The focus of this course is the design of functions that normally return a value, but an error may occur so, what should they return instead? In this video we will be looking at reporting errors using optional values. Optional values are a type that can either hold a value or not. If we try to access the value of a...
Error reporting in C++ - Invalid values (4/13)
Переглядів 493 місяці тому
Join me in these bi-weekly series to explore the topic of error reporting in C . The focus of this course is the design of functions that normally return a value, but an error may occur so, what should they return instead? In this video we will be looking at reporting errors using invalid values. The concept is similar to the previous one, if an error occurs, we return an "invalid" value. If ev...
ToeTap: A human interface device for your toes
Переглядів 2523 місяці тому
ToeTap is a minimalist USB keyboard and mouse that you control by tapping your toes. It's designed to be used as a foot pedal for gamers, video makers and editors or anyone who wants to keep their hands free while working in front of a computer. I use it to scroll through my script while recording videos because I hate moving my hand away just to scroll. It shows a bit on the video and it's ann...
Error reporting in C++ - Empty values (3/13)
Переглядів 763 місяці тому
Join me in these bi-weekly series to explore the topic of error reporting in C . The focus of this course is the design of functions that normally return a value, but an error may occur so, what should they return instead? In this video we will be looking at reporting errors using empty values. The concept is rather simple, if an error occurs, we return an empty or a "default" value. If no erro...
Error reporting in C++ - Exceptions (2/13)
Переглядів 884 місяці тому
Join me in these bi-weekly series to explore the topic of error reporting in C . The focus of this course is the design of functions that normally return a value, but an error may occur so, what should they return instead? In this video we will be looking at exceptions. Exceptions are a powerful and common mechanism to report that something went wrong. However, handling exceptions may be error-...
Error reporting in C++ - Introduction to the course (1/13)
Переглядів 1754 місяці тому
Join me in these bi-weekly series to explore the topic of error reporting in C . We will start by setting the scene and quickly talk about error reporting principles. Then we will look at multiple error reporting code snippets, analyze them and discuss their pros and cons. Specifically, we will look at ways to report errors from essentially C, to C 23 and everything in between. The focus of thi...
Udemy course: How to write SOLID C++ (coupon in the description)
Переглядів 8075 місяців тому
2️⃣0️⃣2️⃣4️⃣ is here and so is my first course on Udemy! "How to write SOLID C " (plat.is/solid) is now live and ready for enrollments. Learn how to develop maintainable and reusable C , that's ready for production. The course comes with a lot of exercises, giving you a hands-on experience with SOLID. SOLID is a set of object-oriented design principles. They correspond to programming best pract...
skonaki: Create cheatsheets out of videos ✍️
Переглядів 808 місяців тому
skonaki: Create cheatsheets out of videos ✍️
Let's get comfortable with SFINAE (C++)
Переглядів 5 тис.9 місяців тому
Let's get comfortable with SFINAE (C )
Sycophant: Generate opinionated articles based on the latest news
Переглядів 2811 місяців тому
Sycophant: Generate opinionated articles based on the latest news
Phonix: Generate captions with the power of OpenAI's Whisper API
Переглядів 734Рік тому
Phonix: Generate captions with the power of OpenAI's Whisper API
Autofill your Pull Request descriptions with the power of #openai
Переглядів 840Рік тому
Autofill your Pull Request descriptions with the power of #openai
🐍 eely: Markdown-based courses made easy
Переглядів 76Рік тому
🐍 eely: Markdown-based courses made easy
How to make money with Open Source
Переглядів 179Рік тому
How to make money with Open Source
C++ Builder design pattern: A pragmatic approach
Переглядів 3,4 тис.Рік тому
C Builder design pattern: A pragmatic approach
Mediterranean Moray eels in Rhodes, Greece
Переглядів 4,4 тис.Рік тому
Mediterranean Moray eels in Rhodes, Greece
Up close and personal with an Aplysia dactylomela (spotted sea hare)
Переглядів 412Рік тому
Up close and personal with an Aplysia dactylomela (spotted sea hare)
platisd/definition-of-done: A bot to verify your DoD in pull requests
Переглядів 852 роки тому
platisd/definition-of-done: A bot to verify your DoD in pull requests
Mob programming for autonomous driving software
Переглядів 862 роки тому
Mob programming for autonomous driving software
Mock anything in C++ without Dependency Injection
Переглядів 2,6 тис.2 роки тому
Mock anything in C without Dependency Injection
Sleep with the parrotfishes
Переглядів 1592 роки тому
Sleep with the parrotfishes
The Pointer to Implementation (pImpl) idiom in C++
Переглядів 12 тис.3 роки тому
The Pointer to Implementation (pImpl) idiom in C
Duplicate code detection tool (GitHub Action)
Переглядів 3,3 тис.3 роки тому
Duplicate code detection tool (GitHub Action)
5 ways to decouple business logic from dependencies in C++
Переглядів 1,2 тис.3 роки тому
5 ways to decouple business logic from dependencies in C

КОМЕНТАРІ

  • @chankayau
    @chankayau 5 днів тому

    SFINAE was like extreme engineering: trying to build a wooden skyscrapper. now `concepts` is the steel invented to safe it.

    • @platisd
      @platisd 5 днів тому

      Nice metaphor. I have some good material on concepts so I wonder if I should make a C++20 follow up on SFINAE 😁

  • @mashtonish
    @mashtonish 9 днів тому

    rampant acronyms, "code smells", pimpl... sometimes the things people come up with are gross.

  • @NickEnchev
    @NickEnchev 14 днів тому

    Surprisingly good video!

  • @AnastasiosKoutian
    @AnastasiosKoutian 14 днів тому

    Congrats on a very clear and useful set of videos on error reporting. I hope std::expected is coming up soon!

    • @platisd
      @platisd 14 днів тому

      It will be the 12th video of the series. Saving the best for last. 😁

  • @matthewjacobs141
    @matthewjacobs141 22 дні тому

    I'm I the only one curious about the Man Made round stone structure on the bottom of the Med?

    • @platisd
      @platisd 22 дні тому

      If I'm not mistaken it should be a truck wheel or so.

    • @matthewjacobs141
      @matthewjacobs141 21 день тому

      @@platisd Could be

  • @hr1100
    @hr1100 Місяць тому

    Thank you for this. I've read several articles and watched cpp con presentations. Your take on the subject was the best i've encountered yet all because you eased us in with the very basic building blocks first.

  • @heartbrave7476
    @heartbrave7476 Місяць тому

    超级棒的视频,深入浅出,娓娓道来,使我明白了很多关于C++的用法。

  • @_noisecode
    @_noisecode Місяць тому

    Great, approachable, yet in-depth tutorial on an advanced topic. UA-cam needs more content just like this.

    • @platisd
      @platisd Місяць тому

      Thank you so much for the kind feedback! :}

  • @Chupe_chupe
    @Chupe_chupe 2 місяці тому

    Great video

  • @eurbanautotech
    @eurbanautotech 2 місяці тому

    Thanks for the awesome video. I've been programming C++ for 25 years but non professionally. I used to think all the abstract programming design theories were just "corporate bloat". I had the mentality of "shut up and code!". But as you can imagine, projects became increasingly complex as project size grew. This forced many projects to go unfinished. I was CONSTANTLY having to rewrite code. Not to mention near full-rewrites... Stuff was near impossible to maintain or extend... the list goes on. Finally, I've been making a concerted effort to write maintainable code so I don't have to keep rewriting everything from scratch all the time! I definitely agree with your beginning of the video. I tried looking through some SOLID videos before but they were based on other languages. The implementations were quite different and definitely made the examples harder to relate to. Thanks again! I've subscribed and will definitely be checking out your other videos.

  • @troypayne8706
    @troypayne8706 2 місяці тому

    'promo sm' 🙄

  • @pawankataria5970
    @pawankataria5970 2 місяці тому

    Thanks for this, you made SFINAE easy for the world !

  • @zeez7777
    @zeez7777 2 місяці тому

    This is truly an amazing video. Thank you for this presentation.

  • @RishmaceInDaFace
    @RishmaceInDaFace 2 місяці тому

    My first language is english and you speak 100x more clearly and amazing vocabulary 😂, very well explained video

  • @danidondeandas
    @danidondeandas 3 місяці тому

    Nice work here! :)

  • @pengliu9987
    @pengliu9987 3 місяці тому

    Nice and informative video. One suggestion to the terminology of "subclass" at 14:45 (At ua-cam.com/video/-Z7EOWVkb3M/v-deo.html). Things such as typename S::IpV4, S::IpV6 in C++ are called member type, while "subclass" typically means "derived class".

    • @platisd
      @platisd 3 місяці тому

      You're correct! I hadn't noticed this until you mentioned it. Another term could be "nested class". 👍

  • @noah_hines
    @noah_hines 3 місяці тому

    Great concept for a tutorial!

  • @TheFinagle
    @TheFinagle 4 місяці тому

    Thank you for this clear description. This is what I needed for my own Menu backend I have been working on. I was trying to figure out how to have a lot of options for overlapping functionality without having to have a ton of different classes or calls - I can wrap each base functionality into a component and use a builder like design to construct a composition class that has whatever is needed for a particular element. Sometimes I find the text book descriptions of things like this kinda hard to visualize, and the extremely simple sample code snippets too simple to show whats going on. I like these more moderately complex samples that actually show things at work and give room to think a bit about how data is being moved around to get where it needs to be.

    • @platisd
      @platisd 4 місяці тому

      Very happy to hear the example suited right for your use case! 👌

  • @asmaamohamedmagdhelali5610
    @asmaamohamedmagdhelali5610 4 місяці тому

    Is the open ai key needs a payment plan to be got or is it free ?

    • @platisd
      @platisd 4 місяці тому

      Hi, as it's mentioned in the Github repo, yes, an API key that you pay for is required. It's not a plan-based subscription though, you pay as you go depending on how much you use it.

  • @gatita_liliana
    @gatita_liliana 4 місяці тому

    Great video

  • @Aksoma
    @Aksoma 4 місяці тому

    Nice presentation, I wouldn't expect anything else :) BTW, you should think of investing in a good mic and especially sound proofing where you record these videos

  • @raymitchell9736
    @raymitchell9736 4 місяці тому

    I'm looking forward to hearing about error handling and reporting lectures... and there are 12 lectures in this series? Wow, this is going to be a deep dive, excellent!

    • @platisd
      @platisd 4 місяці тому

      There are 12 more parts indeed, but you don't have to wait. You can already check them out on Udemy for free: www.udemy.com/course/error-reporting-in-cpp/ The best part? There are also interactive coding exercises for each technique. :}

  • @platisd
    @platisd 5 місяців тому

    1000 subscribers reached! Here's the written tutorial: platis.solutions/blog/2024/01/27/lets-get-comfortable-with-sfinae/

  • @UsernameUsername0000
    @UsernameUsername0000 5 місяців тому

    Perfect presentation & pace!

  • @mohamedhussien4013
    @mohamedhussien4013 6 місяців тому

    Thank u so much for the great explanation. Real-world examples are awesome.

  • @user-fz5pw5kg3w
    @user-fz5pw5kg3w 7 місяців тому

    Thank you! Your examples were excellent, and I came away with a better understanding of SFINAE and alternatives.

  • @anthonysteinerv
    @anthonysteinerv 8 місяців тому

    If I want to reuse the builder object to build, let's say, 2 menus, do we have to create a new Menu after the std::move on the build method?

    • @platisd
      @platisd 8 місяців тому

      Correct. Alternatively, if you really want to avoid creating a new builder object (for whatever reason), you could instead store all the different "attributes" in the `Menu` class and only create a `Impl` object when someone calls the `build()` function. In that case the `withBorder`, `addOption` etc methods of the `Builder` class would merely set member variables and only create an `Impl` object upon the call of `build`. If you'd like us to discuss with more details and potentially code examples, please start an "issue" or a "discussion" in the GitHub repo (github.com/platisd/cpp-builder-pattern).

  • @f4nworld
    @f4nworld 8 місяців тому

    From PR description to Skonaki! All with the help of AI. Amazing, make it a series!

    • @platisd
      @platisd 8 місяців тому

      Nice idea! 😁

  • @Aksoma
    @Aksoma 8 місяців тому

    Why waste 30 minutes writing down your notes when you can spend 5h failing to automate note-taking?😅

  • @MartinCordova
    @MartinCordova 8 місяців тому

    Very well explained

  • @lullabydayal1202
    @lullabydayal1202 8 місяців тому

    I've listened to Dimitris talk in C++ Athens meetup. This is a brilliant session covering SFINAE; its alternatives and some cool techniques with it (I wouldn't know). I'm planning to revisit this video again for referring some advanced topics discussed whenever I need. I would recommend this video as a great watch to all C++ enthusiasts.

  • @eotcoldhymns2930
    @eotcoldhymns2930 8 місяців тому

    I watched your other video on SFINAE. I personally like the way you present. Please keep it.

    • @platisd
      @platisd 8 місяців тому

      Thanks for the kind words of encouragement! 🧡

  • @vukasinstrbac3742
    @vukasinstrbac3742 8 місяців тому

    A good explanation. A perfect continuation would be achieving the same thing with concepts.

  • @isha_928
    @isha_928 8 місяців тому

    Great project! I need guidance regarding implementation of the project according to current android versions

    • @platisd
      @platisd 8 місяців тому

      Well, what have you tried and where did you get stuck? Keep in mind this isn't a beginner friendly project.

    • @platisd
      @platisd 8 місяців тому

      What about you open an issue on the Github repository? ( github.com/GallopingSnaiI/SmartCar ) As you can probably tell, I have no way of imagining what the error you're encountering is and UA-cam isn't the best place for such discussions. Also, please tag @platisd so I can get a notification.

  • @eotcoldhymns2930
    @eotcoldhymns2930 9 місяців тому

    really great video from scratch

  • @MrCiscoski
    @MrCiscoski 9 місяців тому

    Thanks this was really well presented

  • @gatita_liliana
    @gatita_liliana 9 місяців тому

    ahhhhhhhhhhhhhh great video

  • @dariuszantoniuk
    @dariuszantoniuk 9 місяців тому

    C++ needs to die.

    • @platisd
      @platisd 9 місяців тому

      My typical reaction as well, whenever I have to review code that involves template meta programming 😅

  • @incalite
    @incalite 9 місяців тому

    Very informative Dimitris, thanks!😀

  • @gabrielsilveira2779
    @gabrielsilveira2779 10 місяців тому

    Hello, would it be able to analyze the similarity between projects of the same language?

    • @platisd
      @platisd 10 місяців тому

      A "project level" similarity, no. This tool compares files to other files. You might be able infer project-level similarity with some modifications to the script, but I haven't thought it through.

  • @iiilllii140
    @iiilllii140 Рік тому

    Does the alternative "DI with template parameter" create code bloat, if I only use it for testing? I like your video very much!

    • @platisd
      @platisd Рік тому

      Well, it's a template so maybe a little bit? :) It saves you the trouble of doing the link-time switch thing.

  • @BryanChance
    @BryanChance Рік тому

    I don't like C++ almost as much as I don't like Python. LOL C++ is too complicated. People say Python is easy.. NO it is not easy at all.

    • @platisd
      @platisd Рік тому

      What is easy then? 😅

  • @panos270772
    @panos270772 Рік тому

    Are you Greek dimitrios ?

    • @platisd
      @platisd Рік тому

      Is it that obvious? 😆

  • @jgmccabe
    @jgmccabe Рік тому

    I believe you mentioned that this is a technique appropriate to specialisation at link-time, i.e., if you wanted to use a SPI comms interface instead of I2C for an application, that would require the source code for Gyroscope::GyroscopeImpl in Gyroscope.cpp to be physically different. Is that correct? If you wanted to decide, at run-time, whether to use SPI or I2C, would you extract an interface, say CommsDevice, implemented by I2cCommsDevice and SpiCommsDevice with a pointer to the interface held in the GyroscopeImpl class, and passed in via, e.g. its constructor (or a setter function)? (Sorry to use Java terms so much, but they are clearer than C++ - 'interface' - > 'pure virtual base class' etc 😂).

    • @platisd
      @platisd Рік тому

      I am a bit confused because `Gyroscope.cpp` doesn't include any `GyroscopeImpl` and then you lost me about the part where a pointer is being passed via a setter or constructor. I suspect passing anything via the constructor/setter will defeat the purpose of hiding the implementation, but I could be misunderstanding you. How about this: UA-cam isn't the right platform for such discussions, what if we take it on GitHub instead? Could you please open an issue in the repo (github.com/platisd/cpp-pimpl-tutorial) add any code snippets or links to files you think are necessary and then I promise you we will get to the bottom of this. :)

  • @TheRealBigYang
    @TheRealBigYang Рік тому

    the struct interfaces feel so wrong....... especially at 7:35

    • @platisd
      @platisd Рік тому

      Because they are `struct` or some other reason?

    • @TheRealBigYang
      @TheRealBigYang Рік тому

      @@platisd coming from java and just learning c++ more in depth, it feels wrong in general, but mainly because it's a struct and not a class

    • @platisd
      @platisd Рік тому

      @@TheRealBigYang aha I see. `struct` is used in the examples to skip one line of code for the `public` access modifier needed in the case of classes. Other than that, it's a matter of convention. The only difference, after all, between classes and structs in C++ is their default visibility.

    • @TheRealBigYang
      @TheRealBigYang Рік тому

      @@platisd That's something new I just learnt. Thank you!

  • @f4nworld
    @f4nworld Рік тому

    Hahahaha, very nice idea 👌

  • @theken1499
    @theken1499 Рік тому

    it's so simple to understand, thanks for updating this video

  • @HiHi-tu8bv
    @HiHi-tu8bv Рік тому

    hi dear, My final year project Will be about this can you just tell the which hardware components are used.

    • @platisd
      @platisd Рік тому

      There's a link in the description which includes whatever you need to know regarding the hardware used.

  • @goksanisil9107
    @goksanisil9107 Рік тому

    Appreciate your clarity (both in slides and narration), pragmatic approach and minimalism.

  • @TheMorrigan
    @TheMorrigan Рік тому

    Perfect !