সি ++ টেমপ্লেট রূপকটির সেরা পরিচয়? [বন্ধ]


112

স্ট্যাটিক মেটাপ্রোগ্রামিং (ওরফে "টেম্পলেট মেটাপোগ্র্যামিং") একটি দুর্দান্ত সি ++ কৌশল যা সংকলন সময়ে প্রোগ্রামগুলি সম্পাদন করতে দেয়। আমি এই প্রচলিত রূপক উদাহরণটি পড়ার সাথে সাথে আমার মাথায় একটি হালকা বাল্ব চলে গেল:

#include <iostream>
using namespace std;

template< int n >
struct factorial { enum { ret = factorial< n - 1 >::ret * n }; };

template<>
struct factorial< 0 > { enum { ret = 1 }; };

int main() {
    cout << "7! = " << factorial< 7 >::ret << endl; // 5040
    return 0;
}

যদি কেউ সি ++ স্ট্যাটিক ধাতব প্রোগ্রামিং সম্পর্কে আরও জানতে চান তবে সেরা উত্সগুলি (বই, ওয়েবসাইটগুলি, অন-লাইন কোর্সওয়্যার, যাই হোক না কেন)?


43
লাইটব্লব 'অফ' বা 'অন' গেল?
ঘোড়াওয়ালা

36
বন্ধ। অবশ্যই বন্ধ।
থমাস এডিং

উত্তর:


108

[আমার নিজের প্রশ্নের জবাব]

এখন অবধি আমি যে সেরা পরিচয় পেয়েছি তা হ'ল জেনারেটর প্রোগ্রামিং, পদ্ধতি, সরঞ্জামসমূহ এবং ক্রিজিসটফ জার্নেক্কি এবং উলরিচ ডব্লিউ আইজেনেকারের অ্যাপ্লিকেশনগুলি থেকে আইএসবিএন -13: 9780201309775; অধ্যায় 10, "সি ++ ইন স্ট্যাটিক মেটাগ্রোগ্র্যামিং" এবং অধ্যায় 17, সি ++ টেমপ্লেটগুলির "ধাতব প্রোগ্রাম" : ডেভিড ভ্যান্ডেভোর্ডার এবং নিকোলাই এম জোসুটিসের সম্পূর্ণ গাইড , আইএসবিএন -13: 9780201734843।

বিকল্প পাঠ বিকল্প পাঠ বিকল্প পাঠ বিকল্প পাঠ

টড ভেল্ডহুইজন এখানে একটি দুর্দান্ত টিউটোরিয়াল আছে

সাধারণভাবে সি ++ প্রোগ্রামিংয়ের একটি ভাল সংস্থান হ'ল মডার্ন সি +++ এর নকশাই আন্দ্রেই আলেকজান্দ্রেস্কু, আইএসবিএন -13: 9780201704310। বিশেষত রূপান্তরকরণের জন্য বিভাগগুলি ২.১ "সংকলন-সময় নির্ধারণ", ২.৪ "টাইপগুলিতে ইন্টিগ্রাল কনস্ট্যান্ট ম্যাপিং", ২.6 "টাইপ নির্বাচন", ২.7 "সংকলনের সময় রূপান্তর এবং উত্তরাধিকার সনাক্তকরণ", ২.৯ "দেখুন NullTypeএবং "EmptyType " এবং ২.১০ "বৈশিষ্ট্য টাইপ করুন "।

আমি যে সেরা মধ্যবর্তী / উন্নত সংস্থান পেয়েছি তা হ'ল সি ++ টেমপ্লেট মেটাপোগ্র্যামিং ডেভিড আব্রাহামস এবং আলেকসি গুড়টোভয় র মেটাপোগ্র্যামিং, আইএসবিএন -13: 9780321227256

আপনি যদি কেবল একটি বই পছন্দ করেন তবে সি ++ টেমপ্লেটগুলি পান: সম্পূর্ণ গাইড যেহেতু এটি সাধারণভাবে টেমপ্লেটগুলির জন্যও চূড়ান্ত রেফারেন্স।


2
টড ভেল্ডহুইজনের টুকরোটির লিঙ্কটি বাসি হয়ে গেছে।
জন আর স্ট্রোহম

1
আমি এটি বিশ্বাস করি: www10.informatik.uni-erlangen.de/~pflaum/pflaum/ProSeminar/…
0fnt

1
লিঙ্ক এখন স্থির, ধন্যবাদ!
jwfearn

লিঙ্কটি আবার ভেঙে গেছে!
পল

1
আপনাকে ধন্যবাদ @ জেফিয়ার, আমি নিবন্ধটি পড়লাম, যদিও আমি এটি আরও আকর্ষণীয় বলে মনে করেছি: youtube.com/watch?v=Am2is2QCvxY (এটির দুটি অংশ রয়েছে)। এটি ওয়াল্টার ই ব্রাউন এর একটি আলোচনা: আধুনিক টেমপ্লেট রূপক: একটি সংক্ষিপ্তসার
পল

24

আন্দ্রে আলেকজান্দ্রেস্কুর আধুনিক সি ++ ডিজাইন বইটি দ্রুত এবং দক্ষ আধুনিক সি ++ কোডের জন্য অনেকগুলি এবং অন্যান্য কৌশলগুলি কভার করে এবং এটি লোকির ভিত্তি লাইব্রেরির ।

বুস্ট লাইব্রেরিগুলিও উল্লেখযোগ্য , যা এই কৌশলগুলি ভারীভাবে ব্যবহার করে এবং সাধারণত শিখতে খুব উচ্চ মানের হয় (যদিও কিছু বেশ ঘন হলেও)।


12

মডার্ন সি ++ ডিজাইন , আলেকজান্দ্রেস্কু কর্তৃক একটি উজ্জ্বল বই এবং ডিজাইনের প্যাটার্ন ফ্রেমওয়ার্ক। সতর্কতার শব্দ, এই বইটি পড়ার পরে আমি সি ++ করা বন্ধ করে দিয়েছিলাম এবং "ভেবেছিলাম কী, আমি কেবল একটি ভাল ভাষা বেছে নিতে এবং এটি বিনামূল্যে পেতে পারি"।


5
"কি হ্যাক, আমি কেবল একটি আরও ভাল ভাষা বাছাই করতে পারি এবং বিনামূল্যে এটি পেতে পারি" উম্মম, আপনার অর্থ কী? আমি বিশেষত "ফ্রি" দ্বারা বিভ্রান্ত হয়ে পড়েছি। এবং অন্য কোন ভাষা আপনার মনে ছিল?
পপ ক্যাটালিন

12
সি ++ টেমপ্লেট মেটাপোগ্র্যামিং আপনাকে সমস্ত ধরণের নতুন ক্ষমতা দেয় যেমন পাসিং টাইপ বা আর্গুমেন্ট হিসাবে প্রকারের তালিকাগুলি ইত্যাদির মতো capabilities
ফ্লোরিয়ান বুশ

1
আপনি যদি এমন কোনও ভাষা সন্ধান করছেন যা আপনি সঠিক প্রোগ্রামগুলি দ্রুত লিখতে পারেন, পাইথন সি ++ এর চেয়ে ভাল। আপনার যদি সি ++ সরবরাহ করে এমন অন্য কিছু জিনিসগুলির প্রয়োজন হয় তবে সি ++ এ লিসপ-এর মতো সামর্থ্য যুক্ত করা সি ++ - আইফাই অন্য কোনও ভাষা চেষ্টা করার চেয়ে ভাল।
ডেভিড থর্নলি

6

মনে রাখা দুটি ভাল বই হ'ল:

  • আধুনিক সি ++ ডিজাইন / আন্দ্রে আলেকজান্ড্রেসকু (নাম সত্ত্বেও এটি আসলে 7 বছরের পুরনো!)
  • সি ++ টেমপ্লেটস: সম্পূর্ণ গাইড / ভ্যান্ডেভার্ড এবং জোসুটিস

এটি বেশ গভীরভাবে মাঠের ক্ষেত্র, সুতরাং এর মতো একটি ভাল বই অবশ্যই ওয়েবসাইটগুলিতে প্রস্তাবিত। আরও উন্নত কৌশলগুলির কিছুতে আপনি কীভাবে কাজ করে তা নির্ধারণ করার জন্য কোডটি অধ্যয়ন করতে পারবেন!



5

বইয়ের একটি বৃহত তালিকা থাকবে না, কারণ প্রচুর অভিজ্ঞতার লোকদের তালিকা সীমাবদ্ধ। 2000 সালে প্রথম সি ++ টেম্পলেট প্রোগ্রামিং ওয়ার্কশপের আশেপাশে টেমপ্লেট মেটাপোগ্রামিং শুরু হয়েছিল এবং এখন পর্যন্ত নাম লেখকদের অনেকেই এতে অংশ নিয়েছেন। (আইআইআরসি, আন্ড্রেই করেন নি)) এই অগ্রগামীরা ক্ষেত্রটি ব্যাপকভাবে প্রভাবিত করেছিল এবং মূলত যা লিখতে হবে এখন তা লেখা আছে। ব্যক্তিগতভাবে, আমি ভ্যান্ডেভার্ড এবং জোসুটিসকে পরামর্শ দেব। আপনি যদি মাঠে নতুন হন তবে আলেকজান্দ্রেস্কু একটি কঠিন বই।


4

ভেলডহুইজন এর মূল কাগজপত্র ভাল ছিল। যদি আপনি একটি পুরো বইয়ের জন্য সন্ধান করেন তবে ভ্যানেভোভার্ডের বই "সি ++ টেমপ্লেটস সম্পূর্ণ গাইড" রয়েছে। এবং যখন আপনি মাস্টার্স কোর্সের জন্য প্রস্তুত হন, আলেকজান্দ্রেস্কুর আধুনিক সি ++ ডিজাইন ব্যবহার করে দেখুন।


4

গুগল আলেকজান্দ্রেস্কু, আধুনিক সি ++ ডিজাইন: জেনেরিক প্রোগ্রামিং এবং ডিজাইনের প্যাটার্ন প্রয়োগ হয়েছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.