`সমতা_পরিবর্তনযোগ্য_উইথেকে কি` সাধারণ_সংশ্লিষ্টতা প্রয়োজন?


12

ধারণাequality_­comparable_with<T, U> ধরনের যে বস্তু ডিক্লেয়ার দেয়ার উদ্দেশ্যে করা হচ্ছে Tএবং Uএকে অপরের সমান তুলনা করা যেতে পারে, এবং যদি তারা, তারপর এই প্রত্যাশিত অর্থ আছে। সেটা ঠিক আছে.

তবে এই ধারণারও common_reference_t<T&, U&>অস্তিত্ব রয়েছে requires প্রাথমিক অনুপ্রেরণা common_referenceএবং এর পরিবেশনকারী কার্যকারিতা বলে মনে হয় প্রক্সি পুনরাবৃত্তিকে সক্ষম করা , এই জাতীয় পুনরাবৃত্তির মধ্যে referenceএবং তার মধ্যে সম্পর্কের প্রতিনিধিত্ব করার জায়গা থাকতে পারে value_type

দারুণ, কিন্তু ... কি আছে যে পরীক্ষাটি করতে একটি Tএবং একটি Uএকে অপরের সাথে সমান তুলনা করা যেতে পারে? মানকটির প্রয়োজন কেন Tএবং Uকেবল তাদের সমান তুলনা করার অনুমতি দেওয়ার জন্য একটি সাধারণ রেফারেন্স সম্পর্ক রাখে?

এটি অডবোল পরিস্থিতি তৈরি করে যেখানে দুটি প্রকারের পক্ষে যুক্তিযুক্ত তুলনামূলক যুক্ত-যুক্ত সম্পর্কযুক্ত যুক্তিযুক্ত যুক্তিযুক্ত যুক্তিযুক্ত যুক্তিযুক্ত হওয়া খুব কঠিন very উদাহরণস্বরূপ, vector<int>এবং pmr::vector<int>যৌক্তিকভাবে তুলনীয় হওয়া উচিত। তবে এগুলি হতে পারে না কারণ অন্যথায় সম্পর্কযুক্ত দুটি প্রকারের মধ্যে কোনও যুক্তিসঙ্গত সাধারণ-উল্লেখ নেই।


@ মার্শাল এই প্রশ্নের অনুমোদন দেবে।
ব্যারি

এমনকি এমনকি assignable_fromপ্রয়োজন common_reference...
সিপ্লেয়ারিয়ার

@ ক্লিপ্লিনার: এটি কমপক্ষে কিছুটা হলেও বোধগম্য হয়, কারণ অ্যাসাইনমেন্ট এমন একটি সম্পত্তি যা প্রক্সি রেফারেন্স এবং মানগুলি ভাগ করে নেওয়া আশা করে।
নিকল বোলাস

উত্তর:


4

এটি পালো অল্টো প্রতিবেদনে , §৩.৩ এবং ডি .২ এর সমস্ত পথে চলে ।

ক্রস-টাইপ ধারণাগুলি গাণিতিকভাবে সাবলীল হওয়ার জন্য, আপনাকে ক্রস-টাইপ তুলনাটির অর্থ কী তা নির্ধারণ করতে হবে। কারণ equality_comparable_with, t == uসাধারণত এর অর্থ tএবং uসমান, তবে এটি বিভিন্ন ধরণের দুটি মানের সমান হওয়ার জন্য কী বোঝায়? নকশায় বলা হয়েছে যে ক্রস-টাইপ সমতাটি সাধারণ (রেফারেন্স) প্রকারে ম্যাপিংয়ের মাধ্যমে সংজ্ঞায়িত করা হয় (মানটি সংরক্ষণের জন্য এই রূপান্তর প্রয়োজন)।

যেখানে শক্তিশালী অক্ষগুলি equality_comparable_withপছন্দসই নয়, মানকটি কেবলমাত্র প্রদর্শনী-ধারণাটি ব্যবহার করেweakly-equality-comparable-with এবং সেই ধারণার কোনও সাধারণ রেফারেন্সের প্রয়োজন হয় না। এটি অবশ্য একটি "শব্দাত্মক ঘৃণা" (ক্যাসি কার্টারের ভাষায়) এবং কেবলমাত্র সেই কারণেই এটি প্রদর্শনযোগ্য: এটি থাকার অনুমতি দেয় t == uএবং t2 == uতবে t != t2(এটি প্রকৃতপক্ষে সেন্ডিনেলদের জন্য প্রয়োজনীয়)।


2
এটি আকর্ষণীয়, তবে এটি ব্যাখ্যা করে না যে কেন "গাণিতিক শব্দ" সমাধানটি ... "ভাল, অন্য কোনও কিছুর পরিবর্তে এই" সাধারণ রেফারেন্স "ধরণের সাথে জড়িত । অর্থাৎ কেন এটা এমন কিছু বিষয় যা কথাটি গাণিতিকভাবে শব্দ ধারণা ধর্মান্তর অনুমতি দিতে পারে না যে জন্য অনুমতি হবে পরিবর্তে এই অন্তর্নিহিত রেফারেন্স রূপান্তর ব্যবসা করছেন জড়িত (যেমন container<T, stuff>এবং container<U, other_stuff>তুলনীয় হচ্ছে যদি Tসাথে তুলনা করা যায় U)? এটি কি কেবল common_referenceউপলভ্য ছিল, না এর চেয়ে আরও কিছু আছে?
নিকল বোলাস

এটিকে ধারণার অভাব নেই যে সাধারণ_গ্রন্থের ধরণের রূপান্তর ফাংশনটি একটি জ্ঞানবাদ ph
অলিভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.