您可以使用GCC 4.4.7编码法语标识符吗?

时间:2019-03-18 11:13:10

标签: unicode g++ identifier

上下文

一种环境,在该环境中,现有C ++代码已经具有法语标识符,但没有变音符号(é îç等)。该代码库固定在提供g ++(GCC)4.4.7 20120313(Red Hat 4.4.7-23)的环境中。

目标

在给定的环境中评估在代码中使用变音符号的可能性。

到目前为止已测试

“ hello world”样例代码片段français.C

#include <string>
#include <iostream>

int main(){
    typedef std::string chaîne;
    chaîne = "Bonjour tout le monde !"
    std::out << chaîne << std::endl;
}

CMakeLists.txt中可以找到带有最适当的编译标志的简单编译说明:

cmake_minimum_required(VERSION 2.8.9)
project (civilité)
add_executable(civilité français.C)
add_compile_options(-std=c++0x -fextended-identifiers)

尝试编译的结果:

cmake .
[…]
make 2>&1| sed -e"s/^\/.*\(français.C\)/\1/" # get rid of absolute paths
[100%] Building CXX object CMakeFiles/civilité.dir/français.C.o
français.C:5: error: stray ‘\303’ in program
français.C:5: error: stray ‘\256’ in program
français.C:6: error: stray ‘\303’ in program
français.C:6: error: stray ‘\256’ in program
français.C:7: error: stray ‘\303’ in program
français.C:7: error: stray ‘\256’ in program
français.C: In function ‘int main()’:
français.C:5: error: expected initializer before ‘ne’
français.C:6: error: ‘cha’ was not declared in this scope
français.C:6: error: expected ‘;’ before ‘ne’
make[2]: *** [CMakeFiles/civilité.dir/français.C.o] Error 1
make[1]: *** [CMakeFiles/civilité.dir/all] Error 2
make: *** [all] Error 2

注释

关于为什么最好坚持使用英语标识符的评论是没有用的。这是关于遵守已经使用法语单词的现有代码库的约定,但是在引入新标识符时从ASCII裁剪版本转换为常规拼写。

0 个答案:

没有答案