Skip to content

[Good First Issue]: Move orphaned operator== Doxygen block to the public declaration in FeeComponents.h #1613

Description

@rwalworth

🆕🐥 First-Time Friendly

This issue is especially welcoming for people who are new to contributing to the Hiero C++ SDK.

We know that opening your first pull request can feel like a big step. Issues labeled Good First Issue are designed to make that experience easier, clearer, and more comfortable.

No prior knowledge of Hiero, Hedera, or distributed ledger technology is required - just a basic familiarity with C++ and Git is more than enough to get started.

Important

📋 About Good First Issues

Good First Issues are designed to make getting started as smooth and stress-free as possible.

They usually focus on:

  • Small, clearly scoped changes
  • Straightforward updates to existing code or docs
  • Simple refactors or clarity improvements

Other kinds of contributions — like larger features, deeper technical changes, or design-focused work — are just as valuable and often use the beginner, intermediate, or advanced labels.

👾 Description of the Task

In src/sdk/main/include/FeeComponents.h, the operator== declaration at line 271 has no Doxygen comment, while a Doxygen block at lines 329–334 sits orphaned at the bottom of the class — it describes operator== but no declaration follows it.

This artifact was introduced when PR #1516 converted friend operator== to a member function. The friend declaration originally lived at the bottom of the class with the docstring directly above it; when the declaration moved up to the public section, the comment was left behind.

PR #1516 review thread:

Maintainer: "the public declaration has no documentation and the doc comment at lines 329–334 is now orphaned with nothing to describe… Not blocking — I'll open a follow-up issue to track moving the doc comment up to the public declaration and removing the orphaned block."

Verified at the v0.55.0 release commit: line 271 is undocumented; lines 329–334 still hold an orphaned /** ... */ block immediately before the closing };.

Relevant files:

src/sdk/main/include/FeeComponents.h

💡 Proposed Solution

Move the existing orphaned Doxygen block to immediately above the operator== declaration at line 271, then delete the orphaned block from its current location.

Concretely, the file should go from:

// line 271
[[nodiscard]] bool operator==(const FeeComponents& rhs) const;
// ...
// lines 329–334
/**
 * Compare two FeeComponents instances and determine if they are equal.
 * @param rhs The other FeeComponents with which to compare this FeeComponents.
 * @return true if equal, false otherwise.
 */
};

to:

// line 271 (with new comment immediately above)
/**
 * Compare two FeeComponents instances and determine if they are equal.
 * @param rhs The other FeeComponents with which to compare this FeeComponents.
 * @return true if equal, false otherwise.
 */
[[nodiscard]] bool operator==(const FeeComponents& rhs) const;
// ...
};                                  // <- closing brace, no orphan above it

Match the exact wording, capitalization, and \c TRUE / backtick style of recently-added equality operators on neighboring SDK types (e.g. HbarAllowance::operator==, NetworkVersionInfo::operator==) if there is a discrepancy. The convention is to write the comment in the form Compare this <Type> to another <Type> and determine if they represent the same....

👩‍💻 Implementation Steps

  • Open src/sdk/main/include/FeeComponents.h.
  • Confirm the orphaned Doxygen block at the bottom of the class (around lines 329–334) and the undocumented operator== declaration (around line 271).
  • Move the Doxygen block to sit immediately above the operator== declaration. Adjust wording slightly if needed to match the project's Doxygen style for equality operators (peek at HbarAllowance.h or NetworkVersionInfo.h for reference).
  • Delete the now-empty location at the bottom of the class.
  • Run clang-format-17 -i src/sdk/main/include/FeeComponents.h to confirm formatting is clean.
  • Build the project to confirm no header changes were required elsewhere: cmake --build --preset linux-x64-debug.

✅ Acceptance Criteria

  • Scope: Changes are limited to src/sdk/main/include/FeeComponents.h.
  • Behavior: No code change — header-comment relocation only.
  • Style: The relocated Doxygen block matches the convention used by other SDK equality operators.
  • Build: Project still builds cleanly.

📋 Step-by-Step Contribution Guide

To help keep contributions consistent and easy to review, we recommend following these steps:

  • Comment /assign to request the issue
  • Wait for assignment
  • Fork the repository and create a branch
  • Set up the project using the instructions in README.md
  • Make the requested changes
  • Sign each commit using -s -S
  • Push your branch and open a pull request

Read Workflow Guide for step-by-step workflow guidance.
Read README.md for setup instructions.

❗ Pull requests cannot be merged without S and s signed commits.
See the Signing Guide.

🤔 Additional Information

  • Originating PR: #1516.
  • This is a single-file, comment-only change — a great first PR for someone learning the workflow.

If you have questions while working on this issue, feel free to ask! Hiero-SDK-C++ Discord

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: lowNon-urgent tasks, nice-to-have improvements, or minor issuesscope: docsRelated to READMEs, guides, API documentation, or code commentsskill: good first issueSimple, well-scoped tasks ideal for someone new to the repository or open sourcestatus: ready for devFully defined and ready for a contributor to pick up

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions