رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران

پرچمداران

  1. کامبیز اسدزاده

    کامبیز اسدزاده

    بنیـــان گذار


    • امتیاز

      2

    • تعداد ارسال ها

      505


  2. بهنام صباغی

    بهنام صباغی

    کاربـــر رسمی


    • امتیاز

      2

    • تعداد ارسال ها

      84


  3. سروش ربیعی

    سروش ربیعی

    اساتید


    • امتیاز

      1

    • تعداد ارسال ها

      8



مطالب محبوب

در حال نمایش مطالب دارای بیشترین امتیاز در یکشنبه, 2 دی 1397 در همه بخش ها

  1. 1 امتیاز
    اسلک، سرویس آنلاین سازمان دهی فعالیت های گروهی که کار خود را از سال 2015 آغاز کرده و در حال حاضر با 8 میلیون کاربر فعال روزانه یکی از پر استفاده ترین سرویس ها در جهان به شمار می رود، از صبح امروز تمامی کاربران ایرانی خود، شامل افرادی که از داخل ایران از این سرویس استفاده می کردند و همچنین افرادی که خارج از ایران حتی در شرکت هایی خارجی فعالیت داشته و تنها سابقه ای ایرانی داشته اند را تحریم و از دسترسی آنها به تمامی خدمات خود محروم کرد. اقدام عجیب اسلک در حالی صورت گرفته که افرادی با سابقه ایرانی حتی در کشورهایی مانند آمریکا، کانادا و فنلاند هم قادر به استفاده از سرویس های این شرکت نبوده اند و برای مثال اگر یک کمپانی شامل 10 کارمند از کشورهای مختلف از جمله یک کارمند ایرانی از سرویس های اسلک استفاده می کرده است، اکنون تنها کارمند ایرانی قادر به استفاده از مزایای کار گروهی اسلک نخواهد بود و 9 نفر دیگر بدون مشکل به کار خود ادامه می دهند. اسلک در پیامی که به صورت ایمیل به کاربران ایرانی ارسال شده آورده است که این کار با هدف "رعایت قوانین تحریم های اقتصادی و کنترل تجاری ایالات متحده آمریکا علیه ایران" انجام شده و "اسلک با تشخیص هویت کاربران از دسترسی افرادی که به نوعی با تحریم های آمریکا مرتبط هستند به سرویس های خود جلوگیری به عمل می آورد". وب سایت ورج با پیگیری این موضوع به نقل از مدیران روابط عمومی اسلک گزارش داده است که به جز کاربران ایرانی، افرادی با ملیت کوبا، کره شمالی، سوریه و کریمه اکراین هم در فهرست تحریم شدگان قرار دارند. این اقدام در حالی صورت می گیرد که بسیاری از خدمات اسلک به صورت رایگان در اختیار کاربران قرار می گیرد و به جز آن، استفاده از سرویس های مدیریت پروژه آنلاین عملا هیچ تاثیری در تحریم های کالایی و اقتصادی علیه ایران ندارد. ضمن آنکه ایرانیانی که خارج از کشور به کار و زندگی مشغول هستند در اثر این تحریم ممکن است کار خود را از دست داده و زندگی اجتماعی و شغلی خود را در خطر فروپاشی ببینند. دولت آمریکا اخیرا اعلام کرده بود تحریم های ایران دارای اهداف سیاسی بوده و مردم این کشور را تحت فشار قرار نمی دهد؛ اما این اقدام و تحریم های مشابه علیه ایرانیان در سراسر جهان به خوبی نشان دهنده تلاش سازمان یافته این کشور و اتاق فکرهای مرتبط با آن برای مقابله با مفهومی به نام "هویت ایرانی" است. برای جایگزینی اسلک می توانید از نمونه های دیگر خارجی مانند Trello یا سرویس های مشابه سازی شده ایرانی مانند Taskulu استفاده کنید.
  2. 1 امتیاز
    خب پس مشکل چیز دیگست کلا مشکلی با کتابخانه نداری دیتا رو متوجه نشدی باید چکارش کنی. شاید یکم طولانی باشه بحثش ولی سعی میکنم یجوری توضیح بدم متوجه بشید. این حقیقت وجود داره که شما میخواید از دیتا استفاده کنید و صرفا نمیخواید ردش کنید بره پس مثلا به ازای هر مقدار عددی یه کامپوننت نمایشی برای نمایشش نیاز دارید. و این رو باید در زمان نوشتن برنامه مشخص کنید. پس در حالت عادی قضیه اونقدار هم داینامیک نیست و شما می‌دونید مثلا توی لیست قراره چه داده هایی نمایش داده بشه فرض کنید یه کاربر دارید که نام و نام خانوادگی و آدرس ایمیل و شماره موبایل داره از بین ان موارد ممکنه تعدادیشون بیش از یک مقدار داشته باشند یا اصلا ممکنه اپشنال باشند ولی کلیت مشخصه پس با روند عادی که توی پست http://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html گفته شده قابل انجام هست. اما وقتی شما میخواید فول داینامیک باشه یعنی ساختارهای داده پیچیده و تودرتو و کاملا داینامیک داشته باشید طوری که حتی ممکنه خود کاربر مواردی رو اضافه کنه مثلا فرض کنیم بخواد یه بخش برای حیوانات خانگیش اضافه کنه و توی اون دسته بندی بذاره و ... قضیه یکم فرق می‌کنه اما اونم راه حل داره که راهش اینه مثلا هر بخشی که میشه دیتا توش وارد کرد رو نوعش رو از کاربر بگیرید و بر اساس اون مثلا لیبل یا اسپین باکس یا ... نمایش بدید اما مشکل شما چند قدم عقب تر هست یعنی توی آماده سازی و ارسال دیتا به کیو ام ال مشکل دارید که گفتم اگر دیتا ساختار داره یا میتونید ساختار براش در نظر بگیرید که چه بهتر اگر هم ساختار نداره که روش جیسان کردن جواب میده اما این که چطور دیتا رو به جیسان تبدیل کنید می‌تونید دستی این کار رو انجام بدید که البته چندان هم داینامیک نیست یا می‌تونید یه کتابخانه برای تبدیل این کار پیدا کنید که بیاد تبدیل رو براتون انجام بده ولی اینو در نظر داشته باشید که اگر دارید همچین کاری می‌کنید شاید بهتر باشه از دیتابیس‌های NoSQL یا کلا جیسان بیس استفاده کنید. اما اجازه بدید یکم جزئی تر توی مسئله وارد بشم. الان شما دارید دیتا رو از دیتابیس SQL بیس میخونید و توی مدل اون داریدش حقیقت اینه که روند کاریش تا جایی که من یادم میاد جدولی هست یعنی شما الان که اطلاعات رو خوندی به ازای هر ردیف یه سری فیلد داری پس اون چنان داینامیک و قابل تغییر نیست که نیاز باشه از کتابخانه و ... برای تبدیلش استفاده کنی یه روش میتونه این باشه که شما هر ردیف رو یک جیسان در نظر بگیری و هر فیلد رو یک فیلد جیسان و به همین سادگی می‌تونید تبدیلش کنید به جیسان و ادامه روند هم که توی پست‌های بالا توضیح داده شده. حقیقتش فکر می‌کنم توی خود کیو ام ال یه ساده ترین حالت ممکن این قضیه هندل شده یعنی وقتی دیتا از یکی از کانال های تعریف شده به کیو ام ال برسه خیلی کار باهاش سادست مثلا وقتی JSON یا XML از طریق شبکه به برنامه ارسال می‌شود ولی الان مشکل شما ایجاد اون کانال ارتباطی هست شاید تا حدودی که خود کیوت توضیح داده برای هر استفاده چطور این کار رو بکنیم ولی به گفته شما شاید یک راه ساده یا یک ساختار مدل داده قابل ارسال به کیو ام ال اگر تعریف می‌کرد که خودش این قضیه رو هندل می‌کرد خیلی می‌تونست ساده تر باشه این قضیه هم ولی تا جایی که من می‌دونم توضیحات داده برای هربار ولی خودش یک کلاس جامع و داینامیک درست نکرده شاید دلایل خودش رو داره یا شایدم خودش درست کرده من خبر ندارم ? موفق باشید.
  3. 1 امتیاز
    با سلام میتونید از کتابخانه هایی که برای این کار وجود داره استفاده کنید نگاهی به بخش Compression لینک Awesome C/C++ بندازید کتابخانه‌های خوبی فراهم هست. موفق باشید.
  4. 1 امتیاز
    داخل یک ترد غیر از ترد اصلی برنامه تمام فایل‌ها رو rename کنید. زیاد کردن تعداد تردها برای عملیات IO روی فایل خصوصاً در این مورد هیچ کمکی نمی‌کنه که هیچ، به احتمال زیاد سرعت رو هم پایین میاره.
  5. 1 امتیاز
    همانطور که می‌دانید کتابخانه‌ی بوست یکی از بهترین کتابخانه‌های Non-STL برای سی‌پلاس‌پلاس می‌باشد. در این پُست قصد داریم در رابطه با ساخت و استفاده کتابخانه‌ی بوست توضیح دهیم. ابتدا کتابخانه را از اینجا دریافت کنید. فایل‌های دریافتی را در یک مسیر مشخص استخراج کنید. راه اندازی در پلتفرم ویندوز برای مثال در این آموزش ما فایل‌های مورد نظر خود را در مسیر C:/Boost استخراج کرده‌ایم. در کنسول به مسیر فوق رفته و دستور زیر را اجرا کنید. bootstrap.bat این دستور تحت ابزار مخصوص بوست فایل کانفیگ ساخت آن را ارزیابی و اجرا می‌کند. بنابراین دستور بعدی به صورت زیر خواهد بود: b2 toolset=msvc-14.0 --build-type=complete --abbreviate-paths architecture=x86 address-model=64 install -j4 گزینه‌ی toolset برای مشخص کردن کامپایلر و نسخه‌ی آن می‌باشد که در اینجا آن را msvc-14.0 قرار داده ایم. گزینه‌ی architecture جهت مشخص کردن معماری پردازنده است که به صورت پیش فرض بهتر است بر روی x86 تنظیم شود تا بر روی هر دو معماری ۶۴ و ۳۲ بیتی اجرا شود. گزینه‌ی address-model جهت مشخص سازی نوع پردازنده‌ای که پلتفرم اجرایی دارا می‌باشد را مشخص می‌سازد. برای مثال ما بر روی ویندوز ۶۴ بیتی و پردازنده ۶۴ بیتی گزینه x64 را انتخاب کرده ایم. گزینه‌ی -j برای مشخص کردن تعداد هسته‌های قابل استفاده در زمان کامپایل می‌باشد. که به صورت پیشفرض بر روی ۴ تنظیم شده است (۴ هسته قابل اجرا به صورت هم زمان). بعد از اجرای دستور فوق چیزی حدود ۳۰ دقیقه (کمتر و یا بیشتر) متناسب با قدرت پردازشی سیستم شما نیاز خواهد بود تا کتابخانه‌ی بوست کامپایل شود. توجه داشته باشید که بخشی از کتابخانه‌های موجود در بوست به صورت پیش فرض کامپایل نمی‌شوند و در صورت نیاز شما باید آن‌ها را به صورت سفارشی تحت دستور --with-libraryname مشخص نمایید. کد زیر را اجرا نموده و نتیجه را مشاهده کنید: #include <boost/scoped_ptr.hpp> #include <iostream> int main() { boost::scoped_ptr<int> p{new int{1}}; std::cout << *p << '\n'; p.reset(new int{2}); std::cout << *p.get() << '\n'; p.reset(); std::cout << std::boolalpha << static_cast<bool>(p) << '\n'; } این آموزش برای پیکربندی کتابخانه‌های chrono, thread, filesystem, regex و...بر روی پلتفرم‌های macOS و Linux ادامه خواهد داشت...
این صفحه از پرچمداران بر اساس منطقه زمانی تهران/GMT+03:30 می باشد
×
×
  • جدید...