Pertanyaan yang diberi tag templates

187
Argumen templat default untuk templat fungsi

Mengapa argumen templat default hanya diizinkan pada templat kelas? Mengapa kita tidak bisa mendefinisikan tipe default di templat fungsi anggota? Sebagai contoh: struct mycclass { template<class T=int> void mymember(T* vec) { // ... } }; Sebaliknya, C ++ memaksa argumen templat...

186
Rendering variabel templat sebagai HTML

Saya menggunakan antarmuka 'pesan' untuk mengirimkan pesan ke pengguna seperti ini: request.user.message_set.create(message=message) Saya ingin memasukkan html dalam {{ message }}variabel saya dan membuatnya tanpa keluar dari markup di

161
std :: function vs template

Berkat C ++ 11 kami menerima std::functionkeluarga pembungkus functor. Sayangnya, saya terus mendengar hanya hal-hal buruk tentang penambahan baru ini. Yang paling populer adalah mereka sangat lambat. Saya mengujinya dan mereka benar-benar payah dibandingkan dengan template. #include...

159
Templat C ++ yang hanya menerima tipe tertentu

Di Java, Anda dapat menentukan kelas generik yang hanya menerima tipe yang memperluas kelas pilihan Anda, misalnya: public class ObservableList<T extends List> { ... } Ini dilakukan dengan menggunakan kata kunci "extends". Apakah ada yang setara dengan kata kunci ini di C ++?...

151
Templat argumen default

Jika saya diizinkan melakukan hal berikut: template <typename T = int> class Foo{ }; Mengapa saya tidak diizinkan melakukan hal berikut di main? Foo me; Tetapi saya harus menentukan yang berikut: Foo<int> me; C ++ 11 memperkenalkan argumen templat default dan saat ini mereka...

149
Bagaimana cara kerja `void_t`

Saya menyaksikan pembicaraan Walter Brown di Cppcon14 tentang pemrograman template modern ( Bagian I , Bagian II ) di mana ia mempresentasikan void_tteknik SFINAE- nya . Contoh: Diberi templat variabel sederhana yang mengevaluasi voidjika semua argumen templat terbentuk dengan baik: template<...

148
Inisialisasi anggota statis dalam templat kelas

Saya ingin melakukan ini: template <typename T> struct S { ... static double something_relevant = 1.5; }; tapi saya tidak bisa karena something_relevantitu bukan tipe integral. Itu tidak bergantung pada T, tetapi kode yang ada tergantung padanya menjadi anggota statis S. Karena S adalah...