1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // Copyright (C) 2008 N. Musatti
- // Use, modification and distribution are subject to the
- // Boost Software License, Version 1.0. (See accompanying file
- // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- // See http://www.boost.org/libs/config for most recent version.
- // MACRO: BOOST_NO_NESTED_FRIENDSHIP
- // TITLE: Access to private members from nested classes
- // DESCRIPTION: If the compiler fails to support access to private members
- // from nested classes
- namespace boost_no_nested_friendship {
- class A {
- public:
- A() {}
- struct B {
- int f(A& a)
- {
- a.f1();
- a.f2(a);
- return a.b;
- }
- };
- private:
- static int b;
- static void f1(){}
- template <class T>
- static void f2(const T&){}
- };
- int A::b = 0;
- int test()
- {
- A a;
- A::B b;
- return b.f(a);
- }
- }
|