I'm personally using edge descriptors as keys for a map type and it works (I use version 1.38).
Vertex descriptors also work with boost::unordered_map, but the sad thing is that edge descriptors don't work with it, and it'd be nice.
Just one thing:
When you say you use vecS for edge storage type, you mean OutEdgeList or EdgeList?
I ask that cause in known problems it says that, for the moment, only listS is guarranted to work for EdgeList
(the last template parameter of adjacency_list).
In fact I tried to use vecS for it and I had serious problems. With listS everything works all right. Of course, for OutEdgeList, vecS is fine :)
Cheers,

Juan

>> Strangely enough, I use std::set<edge_descriptor> without having to
>> define a less-than operator.  Perhaps it has to do with what the
>> vertex and edge storage types are?  I use vecS for both.