Описание тега injected-class-name
1
ответ
Поиск имени базового класса после наследования конструктора
Рассмотрим следующий код: struct base {}; struct derived : public base { using base::base; base foo() const; // how does name lookup on 'base' here work? }; Интуитивно понятно, что этот код действителен, и он компилируется (проверено с помощью gcc и…
08 янв '16 в 07:43
4
ответа
Обмен слова класса и структуры в C++
Я читал об одной странной функции C++, называемой Injected class name. Я попробовал следующую простую программу #include <iostream> class test { int s{3}; public: int get_s() { return s; } }; int main() { class test::test s; // struct test::te…
22 июл '15 в 09:33
2
ответа
Разница между добавлением и пропуском параметра шаблона для имени класса внутри конструктора
Я хочу знать, есть ли разница между: template <typename T> class foo{ foo<T>(){}; }; template<typename T> class foo{ foo(){}; }; Кажется, что оба работают, но я не понимаю разницу между ними. Первый сбивает меня с толку, я не поним…
12 ноя '16 в 14:46
1
ответ
Любопытный миксин с вариадическим конструктором
У меня есть фрагмент кода, включающий в себя variadic mixin crtp некоторых типов и несколько связанных вопросов. Правильно ли я понимаю, что в следующем коде второй конструктор просто передает копии экземпляров тех классов, которые использовались дл…
16 авг '18 в 07:11
1
ответ
Почему объявление частного базового класса делает имя типа недоступным?
Я удивлен, что в следующем примере объявление частного класса Мидла делает это имя недоступным в качестве типа при последующем выводе. class Base { public: Base(Base const& b) : i(b.i) {} int i; }; class Middle : private Base { //<<<<…
27 дек '18 в 18:44
0
ответов
Маленькая странная проблема на простом JS
У меня есть небольшая проблема с простым сценарием. Он применяет className только один раз на два. вот мой код Заранее спасибо всему сообществу и, пожалуйста, прости плохой английский французского парня:-)! <!DOCTYPE html> <html lang="en"&g…
30 ноя '17 в 14:01
1
ответ
Почему injected-class-name иногда не рассматривается как имя шаблона в шаблоне класса?
Источник В следующих случаях имя введенного класса обрабатывается как имя шаблона самого шаблона класса: за ним следует < используется в качестве аргумента шаблона, соответствующего параметру шаблона это последний идентификатор в разработанном спец…
08 май '18 в 20:00
2
ответа
Видимость / доступ частного наследования в C++
Почему интерфейс имеет особую видимость в методе из-за частного наследования? Обратите внимание, что в моем производном классе требуется глобальный спецификатор ::. Я не понимаю, почему метод наследует видимость из-за частного наследования. Совершен…
14 окт '19 в 18:46
1
ответ
Нужно ли указывать typename в типе возвращаемого значения функции-члена, если функция определена внутри тела класса?
Рассмотрим пример ниже: template <typename T> class SomeClass { // rest of the definition ... SomeClass<T>& function1() { // ... return *this; } SomeClass& function2() { // ... return *this; } } Есть ли разница между возвращаемым…
22 окт '19 в 13:16
1
ответ
Странный стиль за счет внедрения таблиц стилей с классом logo-icon в Chrome
Мой проект построен на Angular 9+. Раньше все работало правильно. Но сегодня (07.08.2020) хром (версия 84.0.4147.105 (официальная сборка) (64-бит)) добавил некоторую внедренную таблицу стилей. Мой логотип-значок получил несколько стилей из хрома. Но…
07 авг '20 в 09:05
2
ответа
Что происходит при появлении Injected-Class-Name? (C++)
Согласно https://en.cppreference.com/w/cpp/language/injected-class-name В области действия класса имя текущего класса обрабатывается, как если бы это было имя открытого члена; это называется введенным-именем-классом. Точка объявления имени следует с…
28 янв '20 в 23:00
1
ответ
в чем разница между Node * next и Node <T> * next?
Я писал реализацию связанного списка в приведенном ниже коде мы имеем Node<T> * next; а также Node * next; Я думаю, что оба делают то же самое, что и указывают на объект класса Node, или между ними есть разница. template<typename T> clas…
22 сен '21 в 18:02
2
ответа
Можно ли использовать введенное имя класса в качестве имени типа в объявлении друга?
Рассмотрим этот код: template <typename T> class Singleton { }; class Logger : public Singleton<Logger> { friend class Singleton; }; Он компилируется в gcc и clang, но действителен ли он? [temp.local].1 говорит: Когда оно используется со…
25 янв '21 в 16:42