-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
Clean up Filter
and FilterIndices
, move indices_
/input_
from public to protected section
#3726
Clean up Filter
and FilterIndices
, move indices_
/input_
from public to protected section
#3726
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but where is API break?
|
Filter
and FilterIndices
, move indices_
/input_
from public to protected section
|
All classes inheriting from |
Please elaborate more, I still don't get. The following code is similar to what we have, but is not affected by access modifier change (C++ shell link): #include <iostream>
class A {
protected:
int foo = 1;
};
class B : public A {
public: // changing this to protected does not break code
using A::foo;
};
class C : public B {
public:
using B::foo;
};
int main()
{
C c;
std::cout << c.foo << std::endl;
} |
Remove |
OK, but this only affects the "external" usage of the fields then.
If I understand right, the fields are still accessible in the deriving classes, it's just that they are not public. |
- Fix scope of internal attributes
cdcc754
to
5b5b002
Compare
Yes, you'd be right. This does mean an API break right? Code stops compiling = API break. Code stops linking = ABI break. |
Strictly speaking, this is an API breakage situation. Even if it was a mistake in the first place to expose these fields. |
OK, agree, this is an API break. And we skip the deprecation ritual because this was a mistake. |
Just did some class cleanup while prototyping the new SamplingFilter class.