সিআরটিপি কি বেশি ব্যবহৃত হয়? এবং কেন / না? [বন্ধ]


11

আমি কৌতূহলীভাবে পুনরাবৃত্তি টেম্পলেট প্যাটার্ন সম্পর্কে ভাবছি ।

আমি এটি বেশ দরকারী বলে মনে করি এবং এটি বেশ কয়েকটি কাজের জন্য বেশ ভালভাবে সামঞ্জস্যযোগ্য। তবে আমাকে স্বীকার করতে হবে, আমি বন্য অঞ্চলে অনেকটা সিআরটিপি কোড দেখতে পাচ্ছি না।

এটা বুঝতে কি শক্ত? ভার্চুয়াল ফাংশন সামগ্রিকভাবে সহজ? ভার্চুয়াল কীওয়ার্ড প্রদর্শিত হয় যেখানে 90% ক্ষেত্রে এটি ব্যবহার করা উচিত নয়?

উত্তর:


8

সহজ সত্য যে অনেক, যদি না সবচেয়ে সি ++ ব্যবহারকারীদের কমই উপলব্ধি করতে পারে হয় vectorবেশী ভালো mallocএবং free, তাই সংখ্যা না শুধুমাত্র তারিফ কিন্তু করতে পারেন বাস্তবায়ন উন্নত টেমপ্লেট metaprogramming খুব বেশী নয়। এর দ্বারা বোঝা যায় যে এটি যদি 90% পরিস্থিতিগুলির জন্য ভাল হয় তবে আপনি এটিকে খুব কম দেখতেন, কারণ লোকেরা এটি সম্পর্কে জানেন না বা কীভাবে এটি ব্যবহার করবেন।

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

তবে এগুলি [ভার্চুয়াল ফাংশন] স্বতন্ত্রভাবে ধীর এবং কম শক্তিশালী। উদাহরণস্বরূপ, আমি এখনই সিআরটিপি ব্যবহার করে কোড লিখছি, যেখানে আপনি অভিব্যক্তি টেম্পলেটগুলির সাথে ব্যবহারের জন্য অপারেটর ওভারলোডগুলি উত্তরাধিকারী। ভার্চুয়াল ফাংশনগুলি সম্ভবত সেই কাজটি করতে পারে এমন কোনও উপায় নেই।


1
'ভার্চুয়াল' এর ব্যবহার এড়াতে সিআরটিপি যে ভাষা-বৈশিষ্ট্যটি ব্যবহার করে তা 'ভার্চুয়াল' কিছু এবং সমস্ত কিছুর বিষয়ে বিড়বিড়তাপূর্ণ, তা কি খানিকটা বিদ্রূপাত্মক নয়?
কাইসারলুদি

6

ডাব্লুটিএল সিআরটিপি ব্যবহার করে। ক্রোমিয়াম ব্রাউজারটি সফটওয়্যারগুলির একটি সুপরিচিত উদাহরণ যা ডাব্লুটিএল ব্যবহার করে, তাই আমি বলতে পারি এটি "বন্যের মধ্যে" ব্যবহৃত হয়েছে।

প্রায় 90%? এটি অবশ্যই একটি বাড়াবাড়ি। আপনি কি পলিমারফিক জিনিসগুলির একটি ধারক ব্যবহার করেছেন? এটি পলিমারফিজমের খুব সাধারণ ব্যবহার এবং আপনি সিআরটিপি দিয়ে এটি করতে পারবেন না কারণ এর Base<DerivedA>মতো নয় Base<DerivedB>


-5

এটি আরও ব্যাপকভাবে ব্যবহার না করার কারণগুলি এখানে:

  1. এটি একটি হ্যাক
  2. হ্যাক হিসাবে, এটি নিশ্চিত নয় যে আপনি এটি ব্যবহার করার সময় আপনি কোনও সমস্যায় পড়বেন না। সাধারণ ওও স্টাফ প্রচুর সংখ্যক প্রকল্পের দ্বারা ব্যবহৃত হয় এবং সঠিকভাবে কাজ করতে পাওয়া যায় / সমস্যাগুলি সুপরিচিত, সিআরটিপি কেবলমাত্র সংখ্যক প্রকল্পে পাওয়া যায়, এবং কোনও ডেটা পাওয়া যায় না
  3. এটি ব্যবহার করার কোনও ভাল কারণ নেই - বেশিরভাগ কারণের কারণগুলি বৈধ নয়
  4. এটি কিছু জিনিসকে আরও জটিল করে তুলতে পারে

11
এটি সুনির্দিষ্টভাবে হ্যাক নয়। আচরণটি খুব ভালভাবে সংজ্ঞায়িত করা হয়েছে এবং এর প্রচুর ব্যবহার রয়েছে।
ডেডএমজি

5
হ্যাঁ, পুরো এসটিএল একটি বড় হ্যাক।
অ্যাবিক্স

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