[スレッド全体]

2015/10/24 (土) 21:45:03 もか  
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0
[2308] Re2:CアウトラインでK&R関数定義がおかしい
C++の関数宣言の後ろに何かくっついてる状態と、
K&Rの関数定義は、マクロまで考えると両方同時にサポートするのは
かなり厳しそうです。
class,publicなどのキーワードやstruct内関数,::の使用や、
ファイル拡張子などでC++かC(K&R)かを識別して処理を分ける方法ぐらいしか思いつきません。
他にはK&Rの場合は、引数リストのところが変数名のみになっていて、
それ以外では型と変数名の2つ以上のキーワードからできてるはずなので
それで識別可能かもしれません。
void func_k_and_r
(arg1, arg2)←これが変数名のみである
int arg1;

void func_cpp
(int arg1, int arg2)←これが必ず型名を含む(2つ以上の単語でできてる)
_THROW2((hoge, fuga));
とりあえず私はすぐに対応するのは無理そうです。

2015/11/14 (土) 01:27:00 もか  
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
[2312] Re3:CアウトラインでK&R関数定義がおかしい
拡張子が.cの時のC言語モードのときK&R定義を読めるようにしたパッチを登録しました。
patchunicode:1012

2015/11/17 (火) 00:39:47 novice  
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
[2313] Re4:CアウトラインでK&R関数定義がおかしい
▼ もかさん
> 拡張子が.cの時のC言語モードのときK&R定義を読めるようにしたパッチを登録しました。
> patchunicode:1012


サンプルコードを貼り付けて、
Eclipse CDTの動作を見てみましたが、
拡張子がcのときは問題なし、
拡張子がcppのときはsyntax errorが表示されます。
ということで、今回のパッチのように
自動判定&手動設定もできれば問題ないと思います。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]