私は Botan-1.4.12 と GNU gcc/g++ 2.95.3 をいくつかのレガシー コードに使用しています。後で新しいバージョンのコンパイラと新しいバージョンのボタンに変更されます。しかし、レガシー コードと Botan-1.4.12 を使用すると、bwlow で説明されているような奇妙な解析エラーが発生します。私のコードベースでは、次のインクルード ファイルを使用しました。
#include <botan/botan.h>
#include <botan/look_pk.h>
#include <botan/dsa.h>
そして、次のエラーが表示されます。
In file included from /opt/botan/include/botan/symkey.h:10,
from /opt/botan/include/botan/base.h:10,
from /opt/botan/include/botan/botan.h:6,
/opt/botan/enums.h:43: parse error before `0x20'
その理由は (/opt/botan/include/botan/enums.h 内)
enum ASN1_Tag {
EOC = 0x00,
BOOLEAN = 0x01,
INTEGER = 0x02,
. . . .
PRIVATE = 0xC0,
. . .
};
PRIVATE = 0xC0 を ZPRIVATE = 0xC0 に変更すると、
問題は明らかに解決されます。何か良い対処法はありますか?