দুটি আধুনিক গ্রন্থাগার যা আধুনিক সি ++ নির্মাণ ব্যবহার করে:
- ইগেন এবং আর্মাদিলো উভয় লাইব্রেরি (লিনিয়ার বীজগণিত) বেশ কয়েকটি আধুনিক সি ++ নির্মাণ ব্যবহার করে use উদাহরণস্বরূপ, তারা পাটিগণিতের অভিব্যক্তিগুলি সহজ করার জন্য উভয় এক্সপ্রেশন টেম্পলেট ব্যবহার করে এবং কিছু সময় অস্থায়ী পদক্ষেপগুলি দূর করতে পারে:
http://eigen.tuxfamily.org
http://arma.sourceforge.net/
http://hpac.rwth-aachen.de/teaching/sem-accg-14/Armadillo.pdf (আর্মাদিলোতে প্রকাশের টেমপ্লেটগুলির উপর উপস্থাপনা)
- সিজিএল লাইব্রেরি (গণনা জ্যামিতি) অনেকগুলি আধুনিক সি ++ বৈশিষ্ট্য ব্যবহার করে (এটি ভারীভাবে টেমপ্লেট এবং বিশেষাধিকার ব্যবহার করে):
http://www.cgal.org
বিঃদ্রঃ:
আধুনিক সি ++ কনস্ট্রাক্টসগুলি খুব মার্জিত এবং এটি ব্যবহার করতে খুব মজাদার হতে পারে। এটি উভয়ই একটি শক্তিশালী পয়েন্ট এবং দুর্বলতা: এগুলি ব্যবহার করার সময়, টেমপ্লেট / বিশেষায়িত / ল্যাম্বডাসের কয়েকটি স্তর যুক্ত করা এতটাই লোভনীয় যে শেষ পর্যন্ত আপনি প্রোগ্রামের কার্যকর কোডের চেয়ে অনেক সময় "প্রশাসন" পান (অন্য কথায়, আপনার প্রোগ্রামটি সমাধানের বর্ণনা দেওয়ার চেয়ে সমস্যার বিষয়ে আরও "কথা" বলছে)। সঠিক ব্যালেন্স সন্ধান করা খুব সূক্ষ্ম। উপসংহার: কোডের মধ্যে "সিগন্যাল / শব্দ" অনুপাতের পরিমাপের মাধ্যমে বিবর্তনের উপর নজর রাখতে হবে :
- প্রোগ্রামে কোডের কত লাইন?
- কত শ্রেণী / টেম্পলেট?
- সময় চলমান ?
- স্মৃতি খরচ?
প্রথম দু'টি বাড়িয়ে তোলে এমন সমস্ত কিছু ব্যয় হিসাবে বিবেচিত হতে পারে (কারণ এটি প্রোগ্রামটিকে বুঝতে এবং বজায় রাখা আরও কঠিন করে তুলতে পারে), যা শেষ দু'টি হ্রাস পায় তা সবই একটি লাভ ।
উদাহরণস্বরূপ, একটি বিমূর্ততা প্রবর্তন (একটি ভার্চুয়াল শ্রেণি বা একটি টেম্পলেট) কোডটি ফ্যাক্ট করে প্রোগ্রামকে সহজ ( লাভ ) করতে পারে, তবে যদি এটি কেবল একবারই উত্পন্ন / উদাহরণস্বরূপ হয় না, তবে এটি কোনও যুক্ত লাভের জন্য ব্যয় প্রবর্তন করে (আবার এটি হয় সূক্ষ্ম কারণ প্রোগ্রামটি ভবিষ্যতের বিবর্তনে পরে লাভ আসতে পারে, সুতরাং কোনও "সোনার নিয়ম" নেই)।
প্রোগ্রামারের স্বাচ্ছন্দ্য ব্যয় / উপার্জনের ভারসাম্য বিবেচনায় নেওয়াও একটি গুরুত্বপূর্ণ বিষয়: অনেকগুলি টেম্পলেট সহ সংকলনের সময় উল্লেখযোগ্য পরিমাণে বাড়তে পারে এবং ত্রুটির বার্তাগুলি পার্স করা শক্ত হয়ে যায়।
আরো দেখুন
জেনেরিক এবং মেটা-প্রোগ্রামিংটি সি ++ টেমপ্লেটগুলি কম্পিউটারের বিজ্ঞানের ক্ষেত্রে কতটা কার্যকর?