আমি নীচে যা বলছি ( ওল্ড পোস্টের অধীনে ) একটি ডিগ্রির সাথে সত্য হওয়া উচিত, তবে এটির সাথে আসল সমস্যাটি হ'ল এসফিনএইটি ভুলভাবে ব্যবহৃত হয়, সুতরাং আমি আর নিশ্চিত নই যে এটি জিসিসি-তে একটি বাগ is
একটি উপনাম ঘোষণা সর্বদা সফল হতে হবে, আপনি সেখানে SFINAE করতে পারবেন না, যেহেতু এটি কোনও শ্রেণি বা ক্রিয়াকলাপের ঘোষণা বা বিশেষত্ব নয় (যেটি আপনি বোঝাতে পারেন, যেহেতু আপনি এলিয়াস বিশেষজ্ঞ করতে পারবেন না)। যদি উপনামের ঘোষণাটি সফল না হয় তবে প্রোগ্রামটিটি খারাপভাবে তৈরি। অতএব সংকলকটি ধরে নিতে পারে যে এটির ক্ষেত্রে কখনই আসবে না যে আপনি যখন পর্যন্ত এটিকে কোনও টেমপ্লেট ইনস্ট্যান্ট করতে বাধ্য না করেন ততক্ষণে উলামের ঘোষণাটি সফল হয় না।
সুতরাং প্রোগ্রামারটির পক্ষে sfinae_v_t<T,...>
সর্বদা এটি মনে করা পুরোপুরি গ্রহণযোগ্য T
, যেহেতু এটি ঘটবে, যখন প্রোগ্রামটি অসুস্থ নয়। সুতরাং এটি দেখতে পাবে যে সমস্ত ক্ষেত্রেই প্রোগ্রামটি দুর্বল নয়, আংশিক বিশেষত্ব বিশেষীকরণ করে না এবং যেমন এটি আপনাকে বলবে যে এটি অ-গঠিত। (এটাই ঝনঝন করে)।
আমি মনে করি না যে সংকলক এটি করতে বাধ্য হয়েছে। এবং যদি এটি না হয় এবং কেবল "ওকে, sfinae_v_t
কিছু ধরণের, যাই হোক না কেন thinks" মনে করে , তবে এটি পুনরায় ঘোষণার বিষয়টি স্পষ্ট নয়। সুতরাং আমি মনে করি যতক্ষণ না আমরা তাদের মধ্যে একটির তদন্ত করি ত্রুটি নিক্ষেপ না করায় কোনও ভুল নেই।
তবে আমরা যখন এটি ইনস্ট্যান্ট করি তখন হয় আমাদের সমস্যাটি হওয়া উচিত যে আমাদের একটি পুনঃসংশোধন হয়েছে বা std::enable_if
টেমপ্লেট যুক্তির উপর নির্ভর করে প্রোগ্রামটি দুর্বল হয়ে গেছে । জিসিসির তাদের কমপক্ষে একটি বাছাই করা উচিত তবে তাও হয় না।
এটি ছাড়া আরও সহজ উদাহরণেও একেবারে প্রযোজ্য নয় std::enable_if
। সুতরাং আমি এখনও মনে করি এটি জিসিসিতে একটি ত্রুটি, তবে আমি যথেষ্ট মনে করি যে আমি এটি আর নিশ্চিত করে বলতে পারি না। আমি কেবল এটিই বলব, কেউ যেন বাগ হিসাবে রিপোর্ট করে এবং সিসি থেকে লোকেরা এটি সম্পর্কে চিন্তা করে।
পুরানো পোস্ট
এটি জিসিসিতে একটি বাগ। স্ট্যান্ডার্ডটি ফাংশন টেম্পলেটগুলিতে শ্রেণিক টেম্পলেট রূপান্তর করার জন্য আমাদের নিয়ম দেয় rules আংশিক ফাংশন টেম্পলেট অর্ডারে এটির ক্রিয়াকলাপটি যদি অন্যটির আগে আসে তবে এক শ্রেণির টেম্পলেটটি অন্যটির চেয়ে বেশি বিশেষায়িত is
আমি এখানে ফাংশন তৈরি করেছি এবং এখন জিসিসি দাবি করেছে যে তাদের কল করা অস্পষ্ট, সুতরাং এটিও বলতে হবে যে শ্রেণীর টেম্পলেটগুলি সমানভাবে নির্দিষ্ট are
দ্রষ্টব্য: সাবধানে মানটি পড়া, আমার মাথার সংকলক ঝাঁকুনির সাথে সম্মত।