2003-10-14 10:33:24 +00:00
|
|
|
// (C) Copyright John Maddock 2001.
|
|
|
|
// 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.
|
2001-09-18 11:13:39 +00:00
|
|
|
|
|
|
|
// MACRO: BOOST_NO_PRIVATE_IN_AGGREGATE
|
|
|
|
// TITLE: private in aggregate types
|
|
|
|
// DESCRIPTION: The compiler misreads 8.5.1, treating classes
|
|
|
|
// as non-aggregate if they contain private or
|
|
|
|
// protected member functions.
|
|
|
|
|
|
|
|
|
|
|
|
namespace boost_no_private_in_aggregate{
|
|
|
|
|
|
|
|
struct t
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
void foo(){ i = j; }
|
|
|
|
public:
|
2002-01-29 13:48:02 +00:00
|
|
|
void uncallable(); // silences warning from GCC
|
2001-09-18 11:13:39 +00:00
|
|
|
int i;
|
|
|
|
int j;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
int test()
|
|
|
|
{
|
|
|
|
t inst = { 0, 0, };
|
2001-09-19 20:24:40 +00:00
|
|
|
(void) &inst; // avoid "unused variable" warning
|
2001-09-18 11:13:39 +00:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2003-10-14 10:33:24 +00:00
|
|
|
|