#pragma GCC visibility push(visibility)
#pragma GCC visibility pop
This pragma allows the user to set the visibility for multiple declarations without having to give each a visibility attribute (see Function Attributes).
In C++, ‘
#pragma GCC visibility’ affects only namespace-scope
declarations. Class members and template specializations are not
affected; if you want to override the visibility for a particular
member or instantiation, you must use an attribute.