প্রশ্ন ট্যাগ «language-lawyer»

প্রোগ্রামিং ভাষা এবং পরিবেশের আনুষ্ঠানিক বা অনুমোদনের নির্দিষ্টকরণের জটিলতা সম্পর্কে প্রশ্নের জন্য।

1
শ্রেণি তার নিজস্ব ব্যক্তিগত স্ট্যাটিক কনস্টেক্সারপ পদ্ধতিতে অ্যাক্সেস করতে পারে না - কলং বাগ?
এই কোডটি কলং (6,7,8,9, ট্রাঙ্ক) তে সংকলন করে না, তবে জিসিসিতে (7.1, 8.1, 9.1) জরিমানা সংকলন করেছে: template<class T> struct TypeHolder { using type = T; }; template<int i> class Outer { private: template<class T> static constexpr auto compute_type() { if constexpr (i == 42) { return TypeHolder<bool>{}; } else …

2
2-ডি অ্যারেটি বাদ দিলে স্ট্রেলের অপ্রত্যাশিত অপ্টিমাইজেশন
আমার কোডটি এখানে: #include <string.h> #include <stdio.h> typedef char BUF[8]; typedef struct { BUF b[23]; } S; S s; int main() { int n; memcpy(&s, "1234567812345678", 17); n = strlen((char *)&s.b) / sizeof(BUF); printf("%d\n", n); n = strlen((char *)&s) / sizeof(BUF); printf("%d\n", n); } জিসিসি 8.3.0 বা 8.2.1 ব্যতীত যে …

3
কোনও রূপান্তর অপারেটরের এই ওভারলোডটি কেন বেছে নেওয়া হয়েছে?
নিম্নলিখিত কোড বিবেচনা করুন । struct any { template <typename T> operator T &&() const; template <typename T> operator T &() const; }; int main() { int a = any{}; } এখানে ওভারলোড রেজোলিউশন দ্বারা দ্বিতীয় রূপান্তর অপারেটরটি বেছে নেওয়া হয়েছে। কেন? যতদুর আমি এটা বুঝতে হিসাবে, দুই অপারেটরে অনুমিত …

3
কনস্ট্রেশন রেফারেন্স দ্বারা ডিফল্ট আর্গুমেন্টের মানটি ফিরিয়ে দেওয়া ঠিক কি?
নীচের উদাহরণগুলির মতো স্থির রেফারেন্স দ্বারা ডিফল্ট আর্গুমেন্টের মানটি ফেরত দেওয়া ঠিক হবে: https://coliru.stacked-crooked.com/a/ff76e060a007723b #include <string> const std::string& foo(const std::string& s = std::string("")) { return s; } int main() { const std::string& s1 = foo(); std::string s2 = foo(); const std::string& s3 = foo("s"); std::string s4 = foo("s"); }

1
সি এর ওভারল্যাপিং অবজেক্টগুলির শব্দার্থক শব্দগুলি কী কী?
নিম্নলিখিত কাঠামো বিবেচনা করুন: struct s { int a, b; }; সাধারণত 1 , এই স্ট্রাক্টটির আকার 8 এবং প্রান্তিককরণ 4 থাকবে। যদি আমরা দুটি struct sঅবজেক্ট তৈরি করি (আরও সুনির্দিষ্টভাবে, আমরা বরাদ্দ স্টোরেজে দুটি যেমন দুটি বস্তু লিখি), দ্বিতীয় অবজেক্টটি প্রথমটি ওভারল্যাপ করে? char *storage = malloc(3 * sizeof(struct …

3
সংকলকটি কি কোনও স্থানীয় অস্থিরতাটিকে ধ্রুবকভাবে ভাঁজ করার অনুমতি দেয়?
এই সাধারণ কোডটি বিবেচনা করুন: void g(); void foo() { volatile bool x = false; if (x) g(); } https://godbolt.org/z/I2kBY7 আপনি এটি দেখতে পাচ্ছেন না gccবা clangতেমন সম্ভাব্য কলটিকে অপ্টিমাইজও করতে পারবেন না g। বিমূর্ত যন্ত্র যা অনুমান করা হল: এটা আমার বুঝতে সঠিক volatile, তাই নির্দিষ্ট-ভাঁজ (হার্ডওয়্যার-ম্যাপ যেমন হচ্ছে …


3
সি ++ ২০ টি ধারণা: টেমপ্লেট যুক্তি একাধিক ধারণার জন্য যোগ্যতা অর্জন করলে কোন টেম্পলেট বিশেষায়নের পছন্দ হয়?
প্রদত্ত: #include <concepts> #include <iostream> template<class T> struct wrapper; template<std::signed_integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "signed_integral" << std::endl; } }; template<std::integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "integral" << std::endl; } }; int main() { wrapper<int> w; …

3
গ্লোবাল ভেরিয়েবলের একটি রেফারেন্স থেকে ল্যাম্বডা ফাংশন পরিবর্তনীয় ক্যাপচারের আচরণগত পার্থক্য
আমি যদি পরিবর্তনীয় কীওয়ার্ড সহ গ্লোবাল ভেরিয়েবলের একটি রেফারেন্স ক্যাপচার করতে ল্যাম্বডা ব্যবহার করি এবং তারপরে ল্যাম্বদা ফাংশনে মানটি সংশোধন করি তবে ফলাফলগুলি সংকলকগুলিতে পৃথক পৃথক। #include <stdio.h> #include <functional> int n = 100; std::function<int()> f() { int &m = n; return [m] () mutable -> int { m += …

1
নিজস্ব ইনিশিয়ালাইজারে পরিবর্তনশীল ব্যবহার
[বেসরাল.স্কোপ.পিডিএসিএল] / সি ++ ২০ স্ট্যান্ডার্ডের খসড়ার 1 / এর একটি নোটে নিম্নোক্ত (অ-আদর্শিক) উদাহরণ রয়েছে ( পুল অনুরোধের মার্জ হওয়ার আগে থেকে 3580 এর আংশিক উক্তি , এই প্রশ্নের উত্তর দেখুন): unsigned char x = x; [...] এক্স এর নিজস্ব (অনির্দিষ্ট) মান দিয়ে শুরু করা হয়। এটির কি আসলে …

2
পিওডি টাইপ হওয়া কি তুচ্ছ, স্ট্যান্ডার্ড-লেআউট টাইপের হওয়ার সমান?
সি ++ 20 এ, POD এর ধারণাটি অবজ্ঞা করা হয়েছে, কারণ এটি তুচ্ছ এবং স্ট্যান্ডার্ড-বিন্যাস হওয়ার অর্থহীন সংমিশ্রিত বৈশিষ্ট্য। যাইহোক, সি ++ 20 খসড়ায় পিওডের সংজ্ঞা হুবহু "তুচ্ছ এবং মান-উভয় লেআউট" নয়; এটি আসলে: একটি পিওডি ক্লাস এমন একটি শ্রেণি যা উভয় তুচ্ছ শ্রেণি এবং একটি মান-লেআউট শ্রেণি, এবং প্রকার …

3
কাস্টম বরাদ্দকারী দ্বারা বরাদ্দকৃত একটি শেয়ার্ড_প্টারের ডিলেটর মেমোরিতে সঞ্চয় করা আছে?
আমি বলার shared_ptrএকটি কাস্টম বরাদ্দকরণ সঙ্গে এবং একটি কাস্টম deleter। আমি স্ট্যান্ডার্ডে এমন কিছু খুঁজে পাচ্ছি না যেখানে মুছে ফেলা হবে কোথায় তা নিয়ে কথা বলবে: এটি কাস্টম বরাদ্দকারী মুছে ফেলার স্মৃতির জন্য ব্যবহৃত হবে এবং এটি বলে না যে এটি হবে না । এটি কি অনির্দিষ্ট বা আমি কেবল …

2
শূন্য দৈর্ঘ্যের অ্যারেতে পয়েন্টারের বৈশিষ্ট্য
বিবেচনা int main() { auto a = new int[0]; delete[] a; // So there's no memory leak } অনুলিপি আরম্ভের অনুলিপি মধ্যে আপনি কি পয়েন্টারটি পড়তে পারবেন a + 1? তদ্ব্যতীত, ভাষা কি সংকলকটিতে সেট aকরার অনুমতি দেয় nullptr?

4
প্রত্যাবর্তনের সময় অন্তর্নিহিত রূপান্তর অনুমোদিত নয়
#include <optional> bool f() { std::optional<int> opt; return opt; } সংকলন করে না: 'return': cannot convert from 'std::optional<int>' to 'bool' পরামর্শের রেফারেন্সটি আমি ব্যাখ্যাটি আবিষ্কার করার জন্য ভাবতাম, তবে এটি ঠিক হওয়া উচিত বলে আমি এটি পড়েছি। অন্তর্ভুক্ত রূপান্তরগুলি সম্পাদিত হয় যখনই কোনও প্রকারের টি 1 এর একটি অভিব্যক্তি প্রসঙ্গে …

1
ফাংশন আর্গুমেন্ট হিসাবে কেন amb Why অস্পষ্টতার দিকে পরিচালিত করে না?
এই কোডটি বিবেচনা করুন: #include <vector> #include <iostream> enum class A { X, Y }; struct Test { Test(const std::vector<double>&, const std::vector<int>& = {}, A = A::X) { std::cout << "vector overload" << std::endl; } Test(const std::vector<double>&, int, A = A::X) { std::cout << "int overload" << std::endl; } }; …

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