1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- // Copyright (C) Joaquin M Lopez Munoz 2004.
- // 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_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
- // TITLE: pointers to members as template arguments
- // DESCRIPTION: Non-type template parameters which take pointers
- // to members, fail to work correctly.
- namespace boost_no_pointer_to_member_template_parameters{
- struct pair
- {
- int x, y;
- pair(int x_,int y_)
- : x(x_), y(y_)
- {}
- };
- template<int pair::* PtrToPairMember>
- struct foo
- {
- int bar(pair& p)
- {
- return p.*PtrToPairMember;
- }
- };
- int test()
- {
- pair p(0,1);
- foo<&pair::x> fx;
- foo<&pair::y> fy;
- if((fx.bar(p) != 0) || (fy.bar(p) != 1))
- return 1;
- return 0;
- }
- }
|