সি ++ টেম্পলেট এবং সি # / জাভা জেনেরিকগুলির মধ্যে এইগুলির মতো বিভিন্ন তুলনা থেকে-
আমি উপলব্ধি পেয়েছি যে, সি ++ টেমপ্লেটগুলি সংকলন না করে এক প্রকার প্রিপ্রোসেসিং (পার্সিংয়ের পূর্বে সরল পাঠ্য প্রতিস্থাপন) দ্বারা প্রয়োগ করা হয়। কারণ সি ++ টেম্পলেটগুলিতে টাইপ চেকিং সি ম্যাক্রোর সাথে সাদৃশ্যপূর্ণ। মানে, যদি কিছু ত্রুটি থাকে তবে সেগুলি টেমপ্লেট কোড ব্লকগুলি প্রক্রিয়াকরণের পরে উত্পন্ন কোড থেকে ত্রুটিগুলি হয়, তারা নিজেরাই টেমপ্লেট থেকে নয়। অন্য কথায়, এগুলি সি তে ম্যাক্রোর এক ধরণের উচ্চতর সংস্করণ are
তারপরে আমি এটিকে সমর্থন করে আরও কিছু তথ্য পেয়েছি-
আমি ভেবেছিলাম, সি ++ টেমপ্লেটগুলি প্রিপ্রোসেসিংয়ের মাধ্যমে প্রয়োগ করা হলে ডায়নামিক লিঙ্কিং (.dll ব্যবহার করে) এর সাথে সমস্যা হবে। এবং একটি দ্রুত গুগলিং এটি সমর্থন করে।
আর একটি বিষয় হল, টেমপ্লেটগুলিতে আর্গুমেন্ট হিসাবে পূর্ণসংখ্যার ধ্রুবকগুলি পাস করা যেতে পারে। এমনকি এটি একরকম পুনরাবৃত্তি সমর্থন করে। সংকলিত সমাবেশ / মেশিন কোডে এই পুনরাবৃত্তিটি পাওয়া যায় না। পুনরাবৃত্তির জিনিসটি প্রতিটি পুনরাবৃত্তি কলের জন্য একটি ফাংশন তৈরি করে এবং এইরকম বৃহত্তর তবে দ্রুত নির্বাহযোগ্য বাইনারি রাখার মাধ্যমে সংকলন সময়ে পরিচালনা করা হয়।
সি ম্যাক্রোগুলির বিপরীতে এর কিছু উচ্চতর ক্ষমতা রয়েছে। তবে কি সি ++ টেম্পলেট কোনও ধরণের প্রাকপ্রসেসিংয়ের সাথে প্রয়োগ করা হচ্ছে না? এটি বিভিন্ন সি ++ সংকলকগুলিতে কীভাবে প্রয়োগ করা হয়?