== Problem ==
I would like to implement a geometric algebra library in c++ similar to this one
http://versor.mat.ucsb.edu/ .
In this context, I have a dot product (middle dot), a wedge product (wedge), a geometric product (usual multiplication), and a commutator product (cross), which are all multiplications in the mathematical sense. However, there is not enough operators available in c++ which match approximately those mathematical symbols. What I have is operator* for the usual multiplication, operator^ for the wedge product, and that's it.
For instance, the versor library that I have mentioned uses the operator% for the commutator, and the operator<= for the dot product. I find it quite clumsy that I need to hack some operators to give them a completely non intuitive meaning.
== Proposal ==
What I would like is to be able to use the proper mathematical symbols, but they are multi-byte characters and not c++ operators. I understand that having multi-byte characters in c++ files would lead to some issues, but I believe it is manageable and could be very helpful in some cases. It would also allow some people to write code in their native language.
A possible solution would be to allow multi-byte characters in a c++ file, only if the file starts with a line with a new special formatting which specifies in which encoding the file is written (maybe something like "[[encoding:utf8]]" or "//encoding - utf8").
Then, we could either extend the set of existing operators, or provide a way to define custom operators with special characters.