Repository: xbmc/xbmc
File: xbmc/video/VideoInfoTag.h (C/C++)

Code before:
  void SetPremiered(const CDateTime& premiered);
  void SetPremieredFromDBDate(const std::string& premieredString);
  virtual void SetYear(int year);
  void SetArtist(std::vector<std::string> artist);
  void SetSet(std::string_view set);
  void SetSetOverview(std::string_view setOverview);
  void SetTags(std::vector<std::string> tags);
  void SetFile(std::string file);
  void SetPath(std::string path);
  void SetMPAARating(std::string mpaaRating);
  void SetFileNameAndPath(std::string fileNameAndPath);
  void SetOriginalTitle(std::string originalTitle);
  void SetEpisodeGuide(std::string episodeGuide);
  void SetStatus(std::string status);
  void SetProductionCode(std::string productionCode);
  void SetShowTitle(std::string showTitle);
  void SetStudio(std::vector<std::string> studio);
  void SetAlbum(std::string album);
  void SetShowLink(std::vector<std::string> showLink);
  void SetUniqueID(std::string_view uniqueid, const std::string& type = "", bool def = false);
  void RemoveUniqueID(const std::string& type);
  struct SeasonAttributes
  {
    std::string m_name;
    std::string m_plot;
    bool operator==(const SeasonAttributes& other) const
    {
      return m_name == other.m_name && m_plot == other.m_plot;
    }
    bool IsEmpty() const { return m_name.empty() && m_plot.empty(); }
  };
  void SetSeasons(std::map<int, SeasonAttributes> seasons);
  void SetUserrating(int userrating);

  void SetOverride(bool setOverride) { m_override = setOverride; }
  bool GetOverride() const { return m_override; }

  /*!
   * @brief Get this videos's play count.
   * @return the play count.
   */
  virtual int GetPlayCount() const;

  /*!
   * @brief Set this videos's play count.
   * @param count play count.
   * @return True if play count was set successfully, false otherwise.
   */
  virtual bool SetPlayCount(int count);

  /*!

Review comment (suggestion):
In C++20 you can do

```c++
    bool operator==(const SeasonAttributes& other) const = default
```

I think

Code after:
  void SetPremiered(const CDateTime& premiered);
  void SetPremieredFromDBDate(const std::string& premieredString);
  virtual void SetYear(int year);
  void SetArtist(std::vector<std::string> artist);
  void SetSet(std::string_view set);
  void SetSetOverview(std::string_view setOverview);
  void SetTags(std::vector<std::string> tags);
  void SetFile(std::string file);
  void SetPath(std::string path);
  void SetMPAARating(std::string mpaaRating);
  void SetFileNameAndPath(std::string fileNameAndPath);
  void SetOriginalTitle(std::string originalTitle);
  void SetEpisodeGuide(std::string episodeGuide);
  void SetStatus(std::string status);
  void SetProductionCode(std::string productionCode);
  void SetShowTitle(std::string showTitle);
  void SetStudio(std::vector<std::string> studio);
  void SetAlbum(std::string album);
  void SetShowLink(std::vector<std::string> showLink);
  void SetUniqueID(std::string_view uniqueid, const std::string& type = "", bool def = false);
  void RemoveUniqueID(const std::string& type);
  struct SeasonAttributes
  {
    std::string m_name;
    std::string m_plot;
    bool operator==(const SeasonAttributes& other) const = default;
    bool IsEmpty() const { return m_name.empty() && m_plot.empty(); }
  };
  void SetSeasons(std::map<int, SeasonAttributes> seasons);
  void SetUserrating(int userrating);

  void SetOverride(bool setOverride) { m_override = setOverride; }
  bool GetOverride() const { return m_override; }

  /*!
   * @brief Get this videos's play count.
   * @return the play count.
   */
  virtual int GetPlayCount() const;

  /*!
   * @brief Set this videos's play count.
   * @param count play count.
   * @return True if play count was set successfully, false otherwise.
   */
  virtual bool SetPlayCount(int count);

  /*!
   * @brief Increment this videos's play count.
   * @return True if play count was increased successfully, false otherwise.
   */