برنامه نویسی

"ج با کلاس ها" مجددا

تا به حال فکر کرده اید که چرا این پشته های دوره جنگ سرد 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 ++ است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا