برنامه نویسی
"ج با کلاس ها" مجددا

تا به حال فکر کرده اید که چرا این پشته های دوره جنگ سرد C/C ++ بسیار کثیف هستند؟ آنها از پیش پردازش بی اهمیت ، پیوند ناپایدار ، الگوهای منحرف ، صحیح و غیر تعیین شده با اندازه اما بدون نیاز به شما و موارد دیگر تشکیل شده اند.
هنگام نوشتن https://git.sr.ht/~anek/werewolf (پل Boost.Beast/Lua) ، من به طور غیرقابل اجتناب در هر شماره C ++ Coder 'تعبیه شده ام: نوشتن بسته های C ++ کتابخانه های C. بیایید به کد من نگاه کنیم:
void lua_vm::getglobal(const std::string &key)
{
lua_getglobal(state(), key.c_str());
}
void lua_vm::push_string(const std::string &str) {
lua_pushlstring(state(), str.data(), str.size());
}
void lua_vm::push_number(size_t num) {
lua_pushnumber(state(), num);
}
آشنا به نظر می رسد؟ جهنم آره
اگر ما مجدداً نام های نام/کلاس/کلاس/ساختار/پیش پردازش را مجدداً مورد بررسی قرار دهیم ، چه می کنیم؟
namespace context {
struct context *create();
void delete(struct context *);
int method1(struct context *ctx, int arg1);
int method2(struct context *ctx, int arg2);
}
struct context {
int field1;
int field2;
};
class context {
using namespace context;
using struct context;
};
نام کار برای این تلاش خودجوش (من شب دیر شده ام ، می دانید) مقدس C ++ است.