Вопросы с тегом «dependent-name»

6
Где и почему я должен поставить ключевые слова «template» и «typename»?
В шаблонах, где и почему я должен поставить typenameи templateна зависимых именах? Что именно являются зависимыми именами в любом случае? У меня есть следующий код: template <typename T, typename Tail> // Tail will be a UnionNode too. struct UnionNode : public Tail { // ... template<typename U> struct inUnion { …

2
Почему эта функция шаблона не работает должным образом?
Я читал о шаблонных функциях и запутался в этой проблеме: #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); …

3
Почему не обязательно использовать typename для зависимых типов в следующем случае?
Я читал об удалении ссылки типа здесь . Это дает следующий пример: #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>(); …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.