Boost logo

Boost :

From: Cromwell Enage (sponage_at_[hidden])
Date: 2004-05-21 08:25:23

Morning, all.

I'm trying to implement a compile-time greatest common
divisor metafunction, a key component of which is
boost::mpl::modulus_c. Am I correct if I say that the
following is typical usage of this class template?

#include <iostream>
#include <boost/mpl/modulus.hpp>

int main()
    typedef typename

    std::cout << "The remainder of 14 divided by 6 is
    std::cout << remainder_type::value << std::endl;

    return 0;

MinGW 3.2 accepts this usage, but MSVC 7.1 files the
following complaint:

..\..\Libraries\boost\boost\mpl\modulus.hpp(39) :
error C2975: 'N' : invalid template argument for
'boost::mpl::integral_c', compile-time evaluatable
constant expression expected

It seems MSVC doesn't recognize A % B as an integral
constant expression.

What's the proper way of handling this?

                              Cromwell Enage

Do you Yahoo!?
Yahoo! Domains – Claim yours for only $14.70/year

Boost list run by bdawes at, gregod at, cpdaniel at, john at