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.

1
Akses anggota dalam struct melalui variabel dalam C ++
Saya memiliki struct dengan dua anggota, misalnya: struct DataSet { int x; int y; }; ..., dan saya harus mengaksesnya dalam suatu metode, tetapi hanya satu per satu, misalnya: void foo(StructMember dsm) { // ("StructMember" does not exist) DataSet ds; ds.x = 4; ds.y = 6; std::cout << ds.dsm * …
10 c++ 


1
Mengapa std :: span tidak memiliki operator pembanding?
Bukankah itu std::spandirancang sebagai referensi ringan untuk sub-daerah arraystd::vector / std::array/ dan sama-sama? Bukankah seharusnya juga memuat operator perbandingan di API-nya, agar konsisten dengan mereka? Apa alasan di balik pengecualian ini? Catatan: oleh operator perbandingan, maksud saya baik set lengkap ( <, <=, ...) atau pesawat ruang angkasa<=>
10 c++  std  c++20  std-span 

3
Pemotongan yang tidak konsisten dari ekspresi integer bitfield yang tidak ditandatangani antara C ++ dan C dalam kompiler yang berbeda
Edit 2 : Saya sedang men-debug kegagalan pengujian aneh ketika fungsi yang sebelumnya berada di file sumber C ++ tetapi pindah ke file C kata demi kata, mulai mengembalikan hasil yang salah. MVE di bawah ini memungkinkan untuk mereproduksi masalah dengan GCC. Namun, ketika saya, dengan hati-hati, mengkompilasi contoh dengan …

1
Mengapa rentang tidak dapat digunakan untuk fungsi pustaka pipa?
Jonathan Boccara (penulis Fluent C ++ ) menulis perpustakaan yang disebut pipa . "Perpipaan" ini, halaman utama repositori mengatakan, tidak seperti penggunaan rentang, meskipun terlihat sama: Ini tidak didasarkan pada tarikan yang malas, tetapi lebih mendorong dengan bersemangat. Tetapi dinyatakan bahwa seseorang tidak dapat menggunakan perpustakaan rentang untuk melakukan berbagai …

3
Bisakah nullptr dikonversi menjadi uintptr_t? Kompiler yang berbeda tidak setuju
Pertimbangkan program ini: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } Gagal mengompilasi dengan msvc v19.24: <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(5): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral …
10 c++  c++11  gcc  visual-c++  clang 

1
Cek konsep TS mengabaikan pengubah akses pribadi
Saya ingin menulis konsep yang dapat diindeks makna bahwa urutan telah memulai / mengakhiri yang mengembalikan RandomAccessIterator, atau operator [] didefinisikan dan mengembalikan nilai dari tipe yang tidak kosong. Saya menggunakan ide-ide dari artikel Stroustrup untuk konsep Sequence dan menambahkannya dengan: template <class T> concept bool Indexable = Sequence<T> || …
10 c++  c++-concepts 

1
Masalah dalam GCC / C ++ 17 dengan kelas templat templat
Pertimbangkan 2 kelebihan berikut ini template<typename T> bool test() { return true; } template<template<typename ...> class T> bool test() { return false; } Yang pertama berfungsi untuk kelas reguler, sedangkan yang kedua berfungsi untuk templat yang tidak dipakai. Contohnya: std::cout<<test<int>()<<std::endl; <-- this yields 1 std::cout<<test<std::list>()<<std::endl; <--this yields 0 Sekarang pertimbangkan …
10 c++  templates  gcc  clang  c++17 

4
Mengapa mengembalikan NULL dari main ()?
Saya terkadang melihat coders yang digunakan NULLsebagai nilai balik main()dalam program C dan C ++, misalnya sesuatu seperti itu: #include <stdio.h> int main() { printf("HelloWorld!"); return NULL; } Ketika saya mengkompilasi kode `ini dengan gcc saya mendapat peringatan: peringatan: return membuat integer dari pointer tanpa gips [-Wint-conversion] yang wajar karena …
10 c++  c  null  return  return-value 


1
Apakah kami dapat membuat wadah dengan tampilan di C ++ 20?
Kisaran datang ke C ++ dengan versi standar C ++ 20. Pertanyaan saya: Apakah kami dapat membuat wadah perpustakaan standar (yang ada) dengan jangkauan apa pun? Dan yang lebih penting, dengan berbagai tampilan? Misalnya, apakah ini: #include <vector> #include <iostream> #include <ranges> int main() { auto sq = [](int x) …
10 c++  c++20  range-v3 

1
Kebocoran memori selama unordered_map :: masukkan pengecualian KeyEqual dengan GCC - melanggar jaminan keamanan pengecualian yang kuat?
Saya menggunakan GCC 7.3.1, tetapi juga diuji pada coliru, yang saya percaya adalah versi 9.2.0. Bangun dengan yang berikut: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Inilah rai.cpp: #include <iostream> #include <unordered_map> int main() { try { struct MyComp { bool operator()(const std::string&, const std::string&) const { throw std::runtime_error("Nonono"); } }; std::unordered_map<std::string, std::string, …


1
Apa artinya ^ () {} dan ^ {} dalam C ++?
Baru-baru ini saya membaca beberapa kode C ++ seperti ini: setData(total, &user, ^() { struct dst_t to = {ip, port}; sendData(to, data); }); getData(total, ^{ recvData(data, NULL); }); Saya belum pernah melihat ^() {}juga ^{}. Apa yang mereka maksud? Semacam fungsi anonim?
10 c++ 


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.