Sam Varshavchik
2017-03-05 20:21:43 UTC
The forward match of progress is requiring a clean break from the pre-c++11
days. Under consideration is migrating the courier-unicode library, used by
both Courier and Cone, to use C++11's unicode support only.
I am taking a poll whether there's still any notable platforms where Courier
and Cone is used that's still using an old compiler that does not support
C++11.
According to gcc's documentation, gcc 4.8.1 was the first version with full
C++11 support; but it's likely that older versions of gcc had sufficient
support. gcc 4.5's compliance page gives Unicode string literals as
supported, so I'm fairly confident of sufficient C++11 unicode support at
least in gcc 4.5, at the latest.
I'd like to know if your compiler does not support C++11 unicode strings.
This can be determined with a simple test:
#include <string>
int main()
{
char32_t c=0;
std::u32string u;
return 0;
}
Save the above as "utest.C", then execute either:
g++ -o utest utest.C
or
g++ -std=c++11 -o utest utest.C
If either one completes without errors, you're good. This is if your
compiler is "g++", of course. Certain platforms, like Debian, FreeBSD, and
many others, might have multiple versions of gcc installed; typically as
"g++NN". Use the appropriate command for your gcc.
days. Under consideration is migrating the courier-unicode library, used by
both Courier and Cone, to use C++11's unicode support only.
I am taking a poll whether there's still any notable platforms where Courier
and Cone is used that's still using an old compiler that does not support
C++11.
According to gcc's documentation, gcc 4.8.1 was the first version with full
C++11 support; but it's likely that older versions of gcc had sufficient
support. gcc 4.5's compliance page gives Unicode string literals as
supported, so I'm fairly confident of sufficient C++11 unicode support at
least in gcc 4.5, at the latest.
I'd like to know if your compiler does not support C++11 unicode strings.
This can be determined with a simple test:
#include <string>
int main()
{
char32_t c=0;
std::u32string u;
return 0;
}
Save the above as "utest.C", then execute either:
g++ -o utest utest.C
or
g++ -std=c++11 -o utest utest.C
If either one completes without errors, you're good. This is if your
compiler is "g++", of course. Certain platforms, like Debian, FreeBSD, and
many others, might have multiple versions of gcc installed; typically as
"g++NN". Use the appropriate command for your gcc.