Pertanyaan yang diberi tag «c++»

C ++ adalah bahasa pemrograman untuk tujuan umum. Awalnya dirancang sebagai ekstensi ke C dan memiliki sintaksis yang sama, tetapi sekarang bahasa yang sama sekali berbeda. Gunakan tag ini untuk pertanyaan tentang kode yang akan dikompilasi dengan kompiler C ++. Gunakan tag khusus versi untuk pertanyaan yang berkaitan dengan revisi standar spesifik [C ++ 11], [C ++ 14], [C ++ 17] atau [C ++ 20], dll.


4
Templat meta pemrograman
Dapatkah seseorang menjelaskan kepada saya, mengapa cara meta-pemrograman templat pertama akan infinite loop, tetapi yang kedua berjalan dengan benar. #include <iostream> using namespace std; template<int N, int M> struct commondivs { static const int val = (N<M) ? commondivs<N,(M-N)>::val : commondivs<(N-M),M>::val; }; template<int N> struct commondivs<N,N> { static const int …

2
Mengapa remove_reference tidak berfungsi pada fungsi?
Berlari ke sesuatu yang aneh ketika melakukan beberapa metaprogramming pemrograman tempo hari. Ini pada dasarnya datang ke pernyataan ini tidak (seperti yang saya harapkan) lewat. static_assert(std::is_same_v<void(), std::remove_reference_t<void()&>>); Pada awalnya saya pikir saya membuat kesalahan sintaksis mendefinisikan referensi fungsi, tetapi pernyataan ini berlalu, menunjukkan itu tidak terjadi. static_assert(std::is_same_v<void()&, void()&>); Saya juga …
38 c++  templates  types  c++17 



4
Kelebihan fungsi menggunakan templat
Saya mencoba untuk mendefinisikan suatu fungsi menggunakan template dan saya ingin nama ketik menjadi int atau anEnum (enum spesifik yang telah saya tetapkan). Saya sudah mencoba yang berikut tetapi saya gagal: template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T> bool isFunction(const T &aVariable){} …


2
Apakah legal untuk mengalokasikan pointer baru?
Pointer ke fungsi bukan pointer data biasa karena tidak dapat disimpan dalam pointer * kosong. Meskipun demikian, tampaknya saya dapat menyimpan salinan fungsi-pointer dalam memori dinamis (dalam gcc dan dentang) seperti pada kode di bawah ini. Apakah kode tersebut legal menurut Standar C ++, atau mungkin ini semacam ekstensi kompiler? …
33 c++ 


3
C ++ decltype dan tanda kurung - mengapa?
Subjek telah dibahas sebelumnya , tetapi ini bukan duplikat. Ketika seseorang bertanya tentang perbedaan antara decltype(a)dan decltype((a)), jawaban yang biasa adalah - aadalah variabel, (a)adalah ekspresi. Saya menemukan jawaban ini tidak memuaskan. Pertama, aadalah ekspresi juga. Pilihan untuk ekspresi primer meliputi, antara lain - (ekspresi) ekspresi-id Lebih penting lagi, frasa …

4
Mengapa dua klausa yang menggunakan untuk menyelesaikan dengan jenis yang sama dilihat sebagai ambigius di gcc
Saya memiliki dua kelas dasar dengan menggunakan klausa class MultiCmdQueueCallback { using NetworkPacket = Networking::NetworkPacket; .... } class PlcMsgFactoryImplCallback { using NetworkPacket = Networking::NetworkPacket; .... } Saya kemudian mendeklarasikan sebuah kelas class PlcNetwork : public RouterCallback, public PlcMsgFactoryImplCallback, public MultiCmdQueueCallback { private: void sendNetworkPacket(const NetworkPacket &pdu); } kompiler kemudian menandai …

2
Perilaku aneh dengan bidang kelas saat menambahkan ke std :: vector
Saya telah menemukan beberapa perilaku yang sangat aneh (pada dentang dan GCC) dalam situasi berikut. Saya punya vektor,, nodesdengan satu elemen, turunan dari kelas Node. Saya kemudian memanggil fungsi nodes[0]yang menambahkan baru Nodeke vektor. Ketika Node baru ditambahkan, bidang objek panggilan direset! Namun, mereka tampaknya kembali normal lagi setelah fungsi …

6
Apakah mungkin #include yang hilang untuk menghentikan program saat runtime?
Apakah ada kasus, di mana yang hilang #includeakan merusak perangkat lunak saat runtime, sementara build masih berjalan? Dengan kata lain, mungkinkah itu #include "some/code.h" complexLogic(); cleverAlgorithms(); dan complexLogic(); cleverAlgorithms(); akan sama-sama membangun dengan sukses, tetapi berperilaku berbeda?
31 c++ 

4
Apa yang disebut (...) dalam C dan C ++?
Salah satu kegunaan dari ...adalah untuk menunjukkan entitas variadic di C dan C ++. Apa namanya? Apakah itu diklasifikasikan sebagai operator atau sesuatu yang lain ketika digunakan dengan cara itu? Ada detail lain tentang ...? Sunting: Saya tahu tujuan .... Saya bertanya tentang nama dan klasifikasinya, yang saya harap, serupa …

6
Apakah aman untuk menukar dua vektor berbeda dalam C ++, menggunakan metode std :: vector :: swap?
Misalkan Anda memiliki kode berikut: #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a : Second) std::cout << a << "\n"; return 0; } Bayangkan vektor tidak std::string, belum kelas: std::vector<Widget> WidgetVector; std::vector<Widget2> Widget2Vector; Apakah masih …
30 c++  c++11  vector  stdvector  swap 

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.