|
Boost : |
From: Stephan Diederich (S.Diederich_at_[hidden])
Date: 2006-09-03 12:24:36
Hello,
I'm having problems with the LvaluePropertyMapConcept.
I expected that following code should compile:
#include <boost/vector_property_map.hpp>
int main(){
using namespace boost;
typedef vector_property_map<int> tSillyVecMap;
function_requires<LvaluePropertyMapConcept<tSillyVecMap, size_t> >();
}
Instead it bails out with an assertion from inside the LvaluePropertyMapConcept:
Error: no matching call to »assertion_failed(mpl_::failed************
boost::is_same<const int&, int&>::************)«
It comes from that piece of code:
template <class PMap, class Key>
struct LvaluePropertyMapConcept{
[snip]
void constraints() {
typedef typename property_traits<PMap>::reference reference;
typedef typename property_traits<PMap>::value_type value_type;
BOOST_MPL_ASSERT((boost::is_same<const value_type&, reference>));
[snip]
Is that the intended behaviour?
If not, where's the bug? Should property_traits<PMap>::reference be
const, or should the Concept test against a const reference?
Best regards,
Stephan
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk