«dependent-name» etiketlenmiş sorular

6
"Şablon" ve "tür adı" anahtar kelimelerini nereye ve neden koymam gerekiyor?
Şablonlar olarak, nerede ve neden katlanmak zorunda typenameve templatebağımlı adlarına? Zaten bağımlı isimler tam olarak nedir? Takip koduna sahibim: template <typename T, typename Tail> // Tail will be a UnionNode too. struct UnionNode : public Tail { // ... template<typename U> struct inUnion { // Q: where to add typename/template …

2
Bu şablon işlevi neden beklendiği gibi davranmıyor?
Şablon işlevleri hakkında okuyordum ve bu sorunla karıştım: #include <iostream> void f(int) { std::cout << "f(int)\n"; } template<typename T> void g(T val) { std::cout << typeid(val).name() << " "; f(val); } void f(double) { std::cout << "f(double)\n"; } template void g<double>(double); int main() { f(1.0); // f(double) f(1); // f(int) …

3
Aşağıdaki durumda, bağımlı türler için neden typen kullanmak gerekli değildir?
Burada bir tür referansı kaldırma hakkında okuyordum . Aşağıdaki örneği verir: #include <iostream> // std::cout #include <type_traits> // std::is_same template<class T1, class T2> void print_is_same() { std::cout << std::is_same<T1, T2>() << '\n'; } int main() { std::cout << std::boolalpha; print_is_same<int, int>(); print_is_same<int, int &>(); print_is_same<int, int &&>(); print_is_same<int, std::remove_reference<int>::type>(); // …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.