Hello,

I am trying to use boost::is_same in the folloting case

enum eOperation { ePlus = 0, eMinus, eMult, eDivide };

template<eOperation P, eOperation Q>
boost::shared_ptr<std::vector<intervalPtr> > convertIntervals() const
{
        BOOST_STATIC_ASSERT(        (boost::is_same<P, eDivide>::value        && boost::is_same<Q, eMinus>::value) ||
                                        (boost::is_same<P, eMult>::value        && boost::is_same<Q, ePlus>::value));

        static const double dNoOfSecsInADay(3600*24);
        boost::shared_ptr<std::vector<intervalPtr> > out(new std::vector<intervalPtr>(m_intervals.size()));

        // more code here

        return out;
}

Could someone help me with this?
it does not compile at all on VC++2010. The error i get is

1>Pshemek -> this needs to be improved, no constructor calls at all when merged back to HEAD
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'T', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>        d:\dev\13_1x\development\cpp\market\event.cpp(689) : see reference to function template instantiation 'boost::shared_ptr<T> SohoEvents::StandardDayEvent::convertIntervals<eDivide,eMinus>(void) const' being compiled
1>        with
1>        [
1>            T=std::vector<SohoEvents::intervalPtr>
1>        ]
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'U', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2955: 'boost::is_same' : use of class template requires template argument list
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'T', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'U', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2955: 'boost::is_same' : use of class template requires template argument list
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'T', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'U', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2955: 'boost::is_same' : use of class template requires template argument list
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'T', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'U', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2955: 'boost::is_same' : use of class template requires template argument list
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE<x>'
1>        with
1>        [
1>            x=false
1>        ]
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'T', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>        d:\dev\13_1x\development\cpp\market\event.cpp(713) : see reference to function template instantiation 'boost::shared_ptr<T> SohoEvents::StandardDayEvent::convertIntervals<eMult,ePlus>(void) const' being compiled
1>        with
1>        [
1>            T=std::vector<SohoEvents::intervalPtr>
1>        ]
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'U', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2955: 'boost::is_same' : use of class template requires template argument list
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'T', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'U', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2955: 'boost::is_same' : use of class template requires template argument list
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'T', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'U', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2955: 'boost::is_same' : use of class template requires template argument list
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'T', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2974: 'boost::is_same' : invalid template argument for 'U', type expected
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2955: 'boost::is_same' : use of class template requires template argument list
1>        d:\dev\13_1x\thirdparty\boost\type_traits\is_same.hpp(37) : see declaration of 'boost::is_same'
1>d:\dev\13_1x\development\cpp\market\event.cpp(668) : error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE<x>'
1>        with
1>        [
1>            x=false
1>        ]
1>Build log was saved at "file://d:\Dev\13_1X\Development\CPP\market\Debug\BuildLog.htm"
1>Market - 26 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
___________________________________________________________
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is prohibited.

Please refer to http://www.bnpparibas.co.uk/en/information/legal_information.asp?Code=ECAS-845C5H  for additional disclosures.