Описание тега inheriting-constructors
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
2
ответа
Все версии GCC борются с инициализатором членов по умолчанию, который захватывает это, в сочетании с унаследованными конструкторами
Эта история похожа на мой предыдущий вопрос. Все версии GCC, поддерживающие C++11, имеют именно такое поведение. Я не смог найти другой компилятор, который борется с моим тестовым примером. Контрольный пример: struct BaseFooWrapper { BaseFooWrapper(…
19 май '17 в 05:50
2
ответа
Наследование конструкторов в Java
Всякий раз, когда какой-либо конструктор вызывается в каком-либо производном классе, задача выполняется только путем неявного или явного вызова конструктора базового класса (поправьте меня, если я здесь не прав). Поскольку мы намеревались создать эк…
20 май '18 в 13:59
1
ответ
Наследование конструктора с псевдонимом типа в производном классе шаблона
Пожалуйста, смотрите следующий код: struct base {}; template <class T> struct derived : T { using base_type = T; using base_type::T; }; int main() { derived<base> x; } GCC принимает этот код, но Clang и MSVC отклоняют его. Кто прав и поч…
01 авг '18 в 19:00
3
ответа
Viewmodel не существует в пространстве имен
Я извиняюсь, если это глупый вопрос или даже не подпадает под то, что я спрашиваю, но я новичок в WPF и, похоже, не могу освоить его. Прямо сейчас я делаю что-то похожее на https://www.c-sharpcorner.com/article/use-inotifypropertychanged-interface-i…
27 июн '18 в 20:41
2
ответа
Наследующие конструкторы работают только частично
У меня есть следующий класс, написанный так, чтобы работать полностью, независимо от того, какой typedef: class A { protected: typedef uchar mDataType; std::vector<mDataType> mData; uint32 mWidth; uint32 mHeight; friend class C; public: A(); A…
18 авг '15 в 09:30
1
ответ
Являются ли наследующие конструкторы noexcept(true) по умолчанию?
Здесь я обнаружил, что: Все наследующие конструкторы [...] по умолчанию являются noexcept(true), если только они не обязаны вызывать функцию noexcept(false), и в этом случае эти функции noexcept(false). Означает ли это, что в следующем примере унас…
03 мар '16 в 22:32
1
ответ
noexcept, наследующие конструкторы и недопустимое использование неполного типа, который фактически завершен
Я не уверен, что это ошибка компилятора GCC или предполагаемое поведение noexcept,Рассмотрим следующий пример: struct B { B(int) noexcept { } virtual void f() = 0; }; struct D: public B { using B::B; D() noexcept(noexcept(D{42})): B{42} { } void f()…
04 мар '16 в 07:27
1
ответ
Inheriting-Constructors + In-Class-Initialization не тип по умолчанию конструкционных объектов терпит неудачу
Я столкнулся со следующей ошибкой в моем проекте: ошибка: использование удаленной функции "C::C(int)" примечание: "C::C(int)" неявно удалено, потому что определение по умолчанию будет неверно сформировано: ошибка: использование удаленной функции '…
29 авг '14 в 18:45
1
ответ
Наследование конструктора и предоставление новой перегрузки: базовый конструктор без аргументов, по-видимому, не участвует в разрешении перегрузки
Тесты показывают странное поведение (c++14, g++ 4.9.1, clang 3.5.5): Подвести итог: если B не предоставляет других конструкторов, которые он может использовать A::A() если B предоставляет другие конструкторы, которые он не может использовать A::A(),…
24 фев '15 в 19:34
0
ответов
Наследование конструкторов (GCC и clang не согласны)
Я пытаюсь настроить std::function и начиная со следующего кода: #include <functional> template <typename> struct my_function; template <typename R, typename... Args> struct my_function<R(Args...)> : std::function<R(Args...…
24 янв '16 в 07:46
1
ответ
Visual C++ 14 CTP3: ошибка конструктора наследования C++11?
Следующий фрагмент кода прекрасно собирается под Clang 3.4/3.5 (Xcode 5/6), но выдает ошибку под CTP3 Visual C++ 14: 1> ------ Начата сборка: Проект: InheritingConstructor, Конфигурация: Отладка Win32 ------ 1> inheritingconstructor.cpp(60): ошибка …
01 окт '14 в 18:41
3
ответа
Наследование конструкторов и перенаправление
C++11 позволяет наследовать конструкторы, что позволяет избежать большого количества шаблонов, особенно с чем-то вроде класса-оболочки. Тем не менее, кажется, что вы могли бы достичь этой функциональности только с помощью шаблонов с переменным число…
14 янв '15 в 19:48
2
ответа
Как выглядит определение (тело) унаследованного конструктора?
Из моего прочтения ответов на SO и ссылки cppreference Унаследованные конструкторы эквивалентны определяемым пользователем конструкторам с пустым телом и списком инициализатора члена, состоящим из одного спецификатора вложенного имени, который перен…
15 янв '15 в 06:27
1
ответ
Ошибка наследования конструктора с boost::multiprecision::mpz_int
Я пытался создать класс, основанный на boost::multiprecision::mpz_int и чтобы он наследовал конструкторы базового класса: #include <boost/multiprecision/gmp.hpp> using namespace boost::multiprecision; struct Integer: mpz_int { using mpz_int::m…
23 июл '14 в 13:49
2
ответа
C++ используя объявление с typename в конструкторах-наследниках
Читая этот вопрос, я обнаружил странную мысль: template <typename T> class Subclass : public Baseclass<T> { public: using typename Baseclass<T>::Baseclass; // ^^^^^^^^ }; поскольку typename, Baseclass<T>::Baseclass Должно быт…
20 сен '14 в 00:16
2
ответа
Наследование конструкторов и виртуальных базовых классов
Я собираюсь создать иерархию классов исключений, которая концептуально выглядит примерно так: #include <iostream> #include <stdexcept> class ExceptionBase : public std::runtime_error { public: ExceptionBase( const char * msg ) : std::run…
16 окт '13 в 09:23
1
ответ
Наследовать от класса шаблона и используя наследовать его конструктор
Я хочу наследовать шаблонный класс и использовать "using" для наследования его конструктора. Но когда я вызываю конструктор перемещения, происходит сбой в "нет соответствующего конструктора" #include <iostream> template <typename ARG> cl…
19 апр '18 в 02:23
1
ответ
C++11 наследующие конструкторы и модификаторы доступа
Предполагая следующий макет: class Base { protected: Base(P1 p1, P2 p2, P3 p3); public: virtual void SomeMethod() = 0; } class Derived : public Base { public: using Base::Base; public: virtual void SomeMethod() override; }; Должен ли я быть в состоя…
09 янв '14 в 09:13
1
ответ
В использовании-объявлении, могут ли зависимые имена отображаться в конструкторах после замены шаблона?
В этом примере: template<class T> struct S : T { using T::X; }; T::X это зависимое имя, которое относится к члену X в T, Если S<T> создается с T = X: struct X { X(int) {} }; ... S<X> s(42); Будет ли использование-объявление стать н…
07 апр '17 в 02:03