Вы можете кодировать французские идентификаторы, используя GCC 4.4.7? - PullRequest
0 голосов
/ 18 марта 2019

Контекст

Среда, в которой существующий код 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 версий к обычному написанию.

...