বিষয়টি আগেও আলোচনা করা হয়েছিল , তবে এটি কোনও সদৃশ নয়।
যখন কেউ মধ্যে পার্থক্য সম্পর্কে জিজ্ঞেস করে decltype(a)
এবং decltype((a))
স্বাভাবিক উত্তর - a
একটি পরিবর্তনশীল (a)
একটি অভিব্যক্তি। আমি এই উত্তরটি সন্তুষ্ট নয়।
প্রথমত, a
পাশাপাশি একটি প্রকাশ। প্রাথমিক প্রকাশের বিকল্পগুলির মধ্যে অন্যদের মধ্যে অন্তর্ভুক্ত রয়েছে -
- (প্রকাশ)
- আইডি প্রকাশ
আরও গুরুত্বপূর্ণ, ডিক্লাইপ টাইপের জন্য শব্দবন্ধগুলি খুব বন্ধুত্বকে খুব খুব স্পষ্টভাবে বিবেচনা করে :
For an expression e, the type denoted by decltype(e) is defined as follows:
(1.1) if e is an unparenthesized id-expression naming a structured binding, ...
(1.2) otherwise, if e is an unparenthesized id-expression naming a non-type template-parameter, ...
(1.3) otherwise, if e is an unparenthesized id-expression or an unparenthesized class member access, ...
(1.4) otherwise, ...
তাই প্রশ্ন থেকেই যায়। প্রথম বন্ধনী কেন অন্যরকম আচরণ করা হয়? এর পিছনে কারিগরি কাগজপত্র বা কমিটির আলোচনার সাথে পরিচিত কেউ? প্রথম বন্ধনীগুলির জন্য সুস্পষ্ট বিবেচনা করলে মনে হয় যে এটি কোনও তদারকি নয়, সুতরাং এমন কোনও প্রযুক্তিগত কারণ থাকতে হবে যা আমি অনুপস্থিত।
(a)
একটি অভিব্যক্তি, এবংa
এটি একটি প্রকাশ এবং একটি পরিবর্তনশীল"।