Joseph S. Myers said:     (by the date of Mon, 26 Apr 2010 14:15:06 +0000 (UTC))

> > I suppose that "raw/real" UTF-8 will not work ;)
> > So how do I express UCN in the code?
> 
> By using the \uNNNN or \UNNNNNNNN syntax.  For example, pipe your code 
> through
> 
> perl -pe 'BEGIN { binmode STDIN, ":utf8"; } s/(.)/ord($1) < 128 ? $1 : 
> sprintf("\\U%08x", ord($1))/ge;'


Wow! It works. Thanks a lot! Unbelievable!

//file UCN_almost_UTF8_identifiers.cpp

#include<iostream>
int main()
{
        double Δ_电场velocity(0);
        std::cout << "Δ_v电场elocity= " << Δ_电场velocity << "\n";
}

// with following makefile:

UCN_almost_UTF8_identifiers:UCN_almost_UTF8_identifiers.cpp
        /home/janek/bin/to_UCN.sh UCN_almost_UTF8_identifiers.cpp
        g++ -fextended-identifiers -o UCN_almost_UTF8_identifiers 
/tmp/UCN_almost_UTF8_identifiers.cpp

//and the helper script: to_UCN.sh:

#!/bin/bash
cat $1 | perl -pe 'BEGIN { binmode STDIN, ":utf8"; } s/(.)/ord($1) < 128 ? $1 : 
sprintf("\\U%08x", ord($1))/ge;' > /tmp/$1


I'm happy that now, for quick testing purposes, I can use UTF8 symbols
for variable names in  C++, even though the code is totally not
portable, it will work locally, and will help me a lot in writing
physical stuff.

-- 
Janek Kozicki                               http://janek.kozicki.pl/  |

Reply via email to