Opened 10 years ago
Closed 9 years ago
#7230 closed Bugs (invalid)
access to private method using boost::bind
Reported by: | anonymous | Owned by: | Peter Dimov |
---|---|---|---|
Milestone: | To Be Determined | Component: | bind |
Version: | Boost 1.49.0 | Severity: | Problem |
Keywords: | bind | Cc: | viboes |
Description
It appears that the privacy of a class method is violated with the use of boost::bind in a template class.
$ uname -a
Linux myhost.mydomain 2.6.32-220.13.1.el6.x86_64 #1 SMP Thu Mar 29 11:46:40 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
$ g++ --version
g++ (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
#include <boost/bind.hpp> #include <iostream> class base { private: void _private() { std::cout << "private" << std::endl; } }; template<class T> class templ { public: void onPrivate(T* t) { // boost::bind(&T::_private, t)(); // error: ‘void base::_private()’ is private boost::bind(&base::_private, t)(); } }; int main(int argc, char **argv) { base b; templ<base> ab; ab.onPrivate(&b); // got into the private parts :) // boost::bind(&base::_private, &b)(); // error: ‘void base::_private()’ is private }
Change History (2)
comment:1 by , 10 years ago
Cc: | added |
---|
comment:2 by , 9 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
This is a problem with the specific compiler.
Note:
See TracTickets
for help on using tickets.
Isn't this a compiler bug?