Cプリプロセッサで少し遊んだ後、次のように定義された、制御構造を持つPythonianに似たものを作成する方法を考えました。
#define with(var) for(int i##__LINE__=0;i##__LINE__<1;)for(var;i##__LINE__<1;++i##__LINE__)
使用例:
#include <cstdio>
#include "FileClass.hpp"
#include "with.hpp"
int main(){
with(FileClass file("test.txt")){
printf("%s\n",file.readlines().c_str());}
return 0;}
二重にネストされたforループには、内側のループで1回インクリメントされて中断される、外側の難読化された反復変数があるという考え方です。これにより、スコープ内にvarを指定して次のコードが1回実行されます。
これには欠点がありますか?反復変数を十分に難読化すると、名前が衝突する可能性はほとんどなくなり、バックファイアの可能性がないように見える方法で標準のプリプロセッサ機能のみが使用され、非常に理解しやすくなります。
それはほとんど真実ではないようです-これがどこでも使用されていない理由はありますか?