Boost logo

Boost :

From: cppljevans_at_[hidden]
Date: 2003-11-06 19:34:29


On 11/06/2003 07:01 AM, cppljevans_at_[hidden] wrote:
> On 11/06/2003 04:21 AM, David B. Held wrote:
> [snip]
>
>> the library). I would leave it out and test your code only with
>> newer compilers (mainly because that's what I'm doing ;).
>>
> Unfortunately, the g++ -E output shows it does nothing; so, leaving it
> out wouldn't help :(
Using gSTLFilt.pl (see http://www.bdsoft.com/tools/stlfilt.html ) shows:
g++-3.2.3 -g -c -I../../.. -I../../../../boost-sandbox/boost-sandbox
-I../../../../boost_release/boost-1.30.2 -o refcycle_counted.o
refcycle_counted.cpp 2>&1 | perl /home/evansl/download/stlfilt/gSTLFilt.pl
BD Software STL Message Decryptor v2.36 for gcc

../../../boost/policy_ptr/smart_ptr.hpp:245: no template named `apply' in
../../../boost/policy_ptr/smart_ptr.hpp: In instantiation of
    `boost::mpl::apply1<
         boost::managed_ptr::curry_prox_visitor<
             boost::managed_ptr::prox_visitor_refcycle_abs
>::refcycle_counted<boost::mpl::_>
       , node<
             boost::managed_ptr::curry_prox_visitor<
                 boost::managed_ptr::prox_visitor_refcycle_abs
>::refcycle_counted<boost::mpl::_>
> *
>':
refcycle_counted.cpp:497: instantiated from here
../../../boost/policy_ptr/smart_ptr.hpp:245: instantiated from
    `boost::detail::apply_lambda<
         boost::managed_ptr::curry_prox_visitor<
             boost::managed_ptr::prox_visitor_refcycle_abs
>::refcycle_counted<boost::mpl::_>
       , node<
             boost::managed_ptr::curry_prox_visitor<
                 boost::managed_ptr::prox_visitor_refcycle_abs
>::refcycle_counted<boost::mpl::_>
> *
>'

Also, the following code:

#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)
char const*const no_full_lambda_support="not defined";
#else
char const*const no_full_lambda_support="is defined";
#endif

int main()
{
       typedef boost::detail::get_category
         <
boost::managed_ptr::curry_prox_visitor<dummy_prox_visitor>::refcycle_counted<_>

>::type cat_type;
       mout()<<utility::demangled_name<cat_type>()<<"\n";
       mout()<<no_full_lambda_support<<"\n";
       return 0;
}

prints "not defined"; hence, !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)
and, in view of the following in boost/mpl/aux_/lambda_support.hpp:

#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)

# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/
# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/

the reason for the "does nothing" in my previous post is clearer.

In view of the trouble I'm having with this, I think I'll just
use a simplified version of smart_ptr and wait for your final
version of smart_ptr before trying to merge refcycle_counted
with policy_ptr/smart_ptr.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk