I've parameterised all the headers (I think) anyway, which means for the next release the XPath engine will be headers-only, and should support -arbitrary string types. There's something cool about headers-only libraries.
Something I've never really done is really shake out Arabica with strings other than std::string and std::wstring. Now I have the XPath testsuite though, I have something large to work with. I'm going to write a really stupid and awkward string class (that doesn't have any public member functions, say) and then get everything to compile and work. Any std::string-isms in Arabica (perhaps a call to find, or iteration using begin and end) will be flushed out and can be picked up the string_adaptor class. Chances are it'll make no difference to anyone anyway, but I'll feel happier knowing I've had a go.