マクロとその可読性について議論しました。場合によっては、マクロを使用するとコードが短くなり、理解しやすくなり、読むのに疲れにくくなると思います。
例えば:
#include <iostream>
#define EXIT_ON_FAILURE(s) if(s != 0) {std::cout << "Exited on line " << __LINE__ << std::endl; exit(1);}
inline void exitOnFailure(int s, int lineNum) {
if (s != 0) {
std::cout << "Exited on line " << lineNum << std::endl;
exit(1);
}
}
int foo() {
return 1;
}
int bar(int a, int b, int c) {
return 0;
}
int main() {
// first option
if (foo() != 0) {
std::cout << "Exited on line " << __LINE__ << std::endl;
exit(1);
}
if (bar(1, 2, 3) != 0) {
std::cout << "Exited on line " << __LINE__ << std::endl;
exit(1);
}
// second option
EXIT_ON_FAILURE(foo());
EXIT_ON_FAILURE(bar(1, 2, 3));
// third option
exitOnFailure(foo(), __LINE__);
exitOnFailure(bar(1, 2, 3), __LINE__);
return 0;
}
ここでは 2 番目のオプションを好みます。これは短くてコンパクトであり、Caps Lock のテキストがキャメル ケースよりも明確で読みやすいためです。
この方法、特に C++ に何か問題がありますか?それとも単にスタイルが悪い (しかし受け入れられる) だけですか?