Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MINIFICPP-1077 - Linter shouldn't warn on non-const references #676

Closed
wants to merge 1 commit into from

Conversation

arpadboda
Copy link
Contributor

Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

For all changes:

  • Is there a JIRA ticket associated with this PR? Is it referenced
    in the commit message?

  • Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

  • Has your PR been rebased against the latest commit within the target branch (typically master)?

  • Is your initial contribution a single, squashed commit?

For code changes:

  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE file?
  • If applicable, have you updated the NOTICE file?

For documentation related changes:

  • Have you ensured that format looks appropriate for the output in which it is rendered?

Note:

Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@arpadboda arpadboda changed the title MINIFICPP-1077 - Linter should't warn on non-const references MINIFICPP-1077 - Linter shouldn't warn on non-const references Nov 6, 2019
Copy link
Contributor

@bakaid bakaid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that we should disable this.

I don't think that the arguments presented for the existence of this warning at https://google.github.io/styleguide/cppguide.html#Reference_Arguments are convincing. The only factual argument is that "References can be confusing, as they have value syntax but pointer semantics", which I don't find very strong, as with minimal care this confusion can be avoided, the other one, that "In fact it is a very strong convention in Google code that input arguments are values or const references while output arguments are pointers" without further elaboration is a fallacy of argument from authority.

Personally, I only like to use raw pointers in C++ when it indicates ownership of a raw resource (malloced memory for example) and use references in all other cases.

Using pointers as output parameters makes code uglier, as acknowledged by the Google styleguide: "Defining a parameter as reference avoids ugly code like (*pval)++."

I don't mind if a particular use case necessitates the usage of pointer output parameters, but I would very much dislike enforcing a policy that would make them mandatory.

@arpadboda arpadboda closed this in 4ab5f48 Nov 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants