"সি ++ টেমপ্লেটস: সম্পূর্ণ গাইড" (সি) 2002 - সি ++ 11 দিয়ে আপ টু ডেট?


10

সি ++ টেমপ্লেটস: দ্য কমপ্লিট গাইড , (সি) 2002 বইটি আমার কাছে খুব আবেদনময়ী মনে হচ্ছে, তবে 12 বছর বয়সী হওয়ায় আমি উদ্বিগ্ন যে এটি পুরানো হয়ে গেছে। এক বছর আগে হিসাবে সম্প্রতি বেশ কয়েকটি অনুকূল অনুকূল আমাজন পর্যালোচনা রয়েছে এবং আমি সি ++ টেম্পলেটগুলিতে খুব সাম্প্রতিক কোনও শিরোনাম দেখতে পাচ্ছি না। কেউ কি জানেন যে ২০০২ সালে প্রকাশিত টেমপ্লেটগুলি সম্পর্কে একটি বইতে (বিশেষত এসটিএল সম্পর্কিত কোনও বইয়ের বিপরীতে) সিনট্যাক্স বা ধারণাগুলি থাকবে যা সি ++ ১১ বলে, তাকে অতিক্রম করা হয়েছে বা যুক্ত করা হয়েছে?

নিম্নলিখিতটি অ্যামাজন বইয়ের বর্ণনা থেকে এসেছে :

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

সি ++ টেমপ্লেটগুলি প্রাথমিক ধারণা এবং ভাষা বৈশিষ্ট্যগুলির উপর অন্তর্দৃষ্টিপূর্ণ টিউটোরিয়াল দিয়ে শুরু হয়। বইয়ের বাকী অংশটি প্রথমে ভাষার বিবরণে, তারপরে বিভিন্ন কোডিংয়ের কৌশলগুলিতে এবং শেষ পর্যন্ত টেমপ্লেটগুলির জন্য উন্নত অ্যাপ্লিকেশনগুলিতে ফোকাস করে একটি বিস্তৃত রেফারেন্স হিসাবে কাজ করে। বই জুড়ে ব্যবহৃত উদাহরণগুলি বিমূর্ত ধারণাটিকে চিত্রিত করে এবং সর্বোত্তম অনুশীলনগুলি প্রদর্শন করে।

পাঠকরা শিখেন

  • টেমপ্লেটগুলির সঠিক আচরণ
  • টেমপ্লেটগুলির সাথে সম্পর্কিত সমস্যাগুলি কীভাবে এড়ানো যায়
  • আইডিয়ামস এবং কৌশলগুলি, বেসিক থেকে পূর্বের নথিভুক্ত পর্যন্ত
  • কর্মক্ষমতা বা সুরক্ষা হুমকী ছাড়াই কীভাবে উত্স কোডটি পুনরায় ব্যবহার করবেন
  • সি ++ প্রোগ্রামগুলির দক্ষতা কীভাবে বাড়ানো যায়
  • কীভাবে আরও নমনীয় এবং রক্ষণাবেক্ষণযোগ্য সফ্টওয়্যার তৈরি করা যায়

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

উত্তর:


12

আপডেট হয়েছে (2016/08/24)

সি ++ 11 এ ফোকাস সহ প্রস্তাবিত নিবন্ধ:

সি ++ এর SFINAE ধারণার একটি পরিচিতি: একটি শ্রেণীর সদস্যের সংকলন-সময় অন্তরঙ্গকরণ (জিন গুয়েগ্যান্ট)


কয়েক মাস আগে সি ++ টেমপ্লেট মেটাপোগ্র্যামিংয়ের একজন শিক্ষার্থী হিসাবে, আমি এখনও এই বইটি পড়ার পরামর্শ দেব।

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


সি ++ 11 থেকে অনুপস্থিত অংশগুলি হ'ল:


একটি কনস্ট্রাক্ট যা আপনি যে Stackoverflow সম্মুখের আটকানো হয় কোডে অনেক দেখতে হবে নেই: std::enable_if। তবে, বাস্তবে, আমি এটি ব্যবহার করা বেশ কঠিন বলে মনে করি, কারণ ওয়ান-ডেফিনিশন রুল এবং এসএফআইএনএই কারণ। এই কারণেই এই বইটি গুরুত্বপূর্ণ, কারণ এটি মৌলিক বিষয়গুলি ছাড়িয়ে যায়।


আপনি যদি ক্রস-প্ল্যাটফর্ম লাইব্রেরিতে সি ++ টেম্পলেটগুলি যথেষ্ট পরিমাণে ব্যবহার করেন তবে আপনাকে বিভিন্ন সংকলকগুলিতে আপনার কোডটি পরীক্ষা-সংকলন করতে হবে। এটি কারণ প্রতিটি সংকলকটির সি ++ নির্দিষ্টকরণের বিভিন্ন স্তরের সম্মতি রয়েছে। একটিতে জরিমানা সংকলনকারী কোড অন্যটির দ্বারা প্রত্যাখ্যাত হতে পারে এবং মাঝে মাঝে সংকলক যে এটি গ্রহণ করে তা হ'ল নির্দিষ্টকরণটি ভঙ্গ করে।


আমি যখন এই বইটি দিয়ে যাচ্ছি তখন আমার পড়ার নোটগুলি এখানে। আশা করি এটি সহায়ক হবে।

বই পড়ার নোট - সি ++ টেমপ্লেট - সম্পূর্ণ গাইড (2003)

  • Ch 2.5 - ফাংশন টেমপ্লেট - সংক্ষিপ্তসার
    • ওভারলোড রেজোলিউশন, এবং সেরা অনুশীলন
  • Ch 3.3 - ক্লাস টেম্পলেটগুলির বিশেষীকরণ Special
  • Ch 3.4 - আংশিক বিশেষীকরণ
    • অস্পষ্টতা (ওডিআর ত্রুটি), এবং কীভাবে এটি সমাধান করা যায় ওডিআর = এক-সংজ্ঞা বিধি
  • সিএইচ 4.3 - নন-টাইপ টেম্পলেট প্যারামিটারগুলির জন্য বিধিনিষেধ
    • উদাহরণ: বাহ্যিক সংযোগ সহ স্ট্রিং আক্ষরিক
  • Ch 5 এবং Ch 6 - এই দুটি অধ্যায়টি খুব হতাশাজনক। আপনি টেমপ্লেটগুলি ব্যবহারের জন্য যখন আবেগগতভাবে প্রস্তুত হন তখন আপনি এড়িয়ে যেতে পারেন এবং তারপরে ফিরে যেতে পারেন।

  • দ্বিতীয় খণ্ড (Ch 8 - Ch ???) উন্নত স্টাফগুলির বিভাগ।

  • Ch 8 - আরও বিধি

    • পুরো সি 3 এর সাথে ইতিমধ্যে পরিচিত প্রোগ্রামারটির জন্য (ক্লাস টেম্পলেটগুলি - বেসিক), চ 8 8 এবং 8.2 তত্ক্ষণাত চ 3 এর পরে পড়তে হবে, কারণ অতিরিক্ত বিধিগুলি মূল বিধিগুলির মতোই গুরুত্বপূর্ণ এবং প্রাসঙ্গিক। এতে কিছুটা বেদনা বাঁচবে।
  • Ch 8.3.1 (12 ম মুদ্রণের পৃষ্ঠা 106) প্রথমবারের জন্য SFINAE উল্লেখ করেছে।

  • Ch 8.3 - এই বিভাগটি এমন অনেক পরিস্থিতিতে প্রবর্তন করে যেখানে টেমপ্লেট আর্গুমেন্টের বিকল্পটি অযৌক্তিক সিনট্যাকটিক বিস্তারের দিকে পরিচালিত করে (এবং এভাবে অবৈধ হয়ে যায়, যার বিনিময়ে SFINAE প্রয়োজন)। এই অধ্যায়ে এমনকি অভিজ্ঞ সি ++ প্রোগ্রামারদের জন্য খাড়া শেখার বক্ররেখা রয়েছে।
  • Ch 11 - টেম্পলেট আর্গুমেন্ট ছাড়

    • Ch11 এ কিছু সমঝোচিত টেম্পলেট আর্গুমেন্ট ছাড়ের উদাহরণ রয়েছে যা সমানভাবে অনুমোদিত কিছু SFINAE অ্যাপ্লিকেশন বোঝার জন্য প্রয়োজনীয়।
  • Ch 12.4 এর পরে - আংশিক শ্রেণীর টেম্পলেট বিশেষীকরণ।

    • এটি অভ্যন্তরীণ যান্ত্রিকগুলি কভার করে যা প্রায়শই একটি SFINAE অ্যাপ্লিকেশনে ডাকা হয়।

পার্ট III (Ch 17 - Ch ???) ধাতব প্রোগ্রামিং।

  • সিএফ 17 - প্রারম্ভিক ফাংশনাল প্রোগ্রামিংয়ের সাথে শুরু।

  • অ্যাপ্লিকেশন। এ .৩ - এক-সংজ্ঞা বিধি (ওডিআর) বিস্তারিত।


3
টিএমপি-এর প্রাক-সি ++ ১১ টি আলোচনার সমস্যাটি এটি কভার করবে না constexprএবং তাই সমস্ত রূপকবিদ্যার জন্য টিএমপি সুপারিশ করবে, এমনকি constexprফাংশন এবং প্রকারগুলি আরও ভাল উপযুক্ত হবে এমন ক্ষেত্রেও ।
বেন ভয়েগট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.