Вопросы по теме 'using-declaration'

Пространство имен с использованием объявления (ошибка в GCC/VS2010)?
namespace A{ int i; } int main(){ using A::i; using A::i; } VS2010 - отлично компилируется gcc (ideone) — компилируется нормально Comeau - выдает ошибку ""ComeauTest.c", строка 10: ошибка: "i" уже объявлен в текущей области...
605 просмотров
schedule 01.06.2022

В С++ можно ли переименовать/псевдоним имени, не относящегося к пространству имен, не относящемуся к классу?
у меня есть namespace src { struct src_bar; void src_baz(); template<class T> class src_qux; } который я хотел бы сослаться как namespace dst { struct dst_bar; void dst_baz(); template<class T> class...
1182 просмотров
schedule 19.06.2023

Наследование и скрытие родительских атрибутов
Разумно ли делать что-то подобное? Примечание: это минимальный рабочий пример. class A { public: int getX() { return x; } protected: int x; virtual void setX(int newX) = 0; }; // Children can modify X class...
762 просмотров

Объявление класса в той же области, что и при использовании компиляции объявлений в GCC, но не в MSVS
Корректна ли следующая программа в соответствии со стандартом С++? namespace X { class A; } namespace Y { using X::A; class A {}; } int main() {} Я получаю разные результаты с разными компиляторами: gcc компилирует без ошибок. Visual...
1213 просмотров

Есть ли обходной путь для расширения пакета параметров при использовании объявлений [дубликаты]
Расширение пакета параметров при использовании объявлений не поддерживается. в C++14 , поэтому следующий код не компилируется: template<typename T> struct A { virtual void foo(T); }; template<typename... T> struct B:...
60 просмотров

передача пакета параметров по сигнатуре устаревшей функции с использованием forward_as_tuple
В моем приложении я хотел бы передать пакет параметров поверх сигнатуры устаревшей функции и изменить значения. Вот код, который иллюстрирует мой вопрос с моими попытками в качестве комментариев: #include <tuple> #include <cassert>...
115 просмотров

Удивительное поведение при наследовании конструктора множественного копирования
Начиная с C++11, может быть два конструктора копирования, один из которых принимает параметр типа T& , а другой — параметр типа const T& . У меня возникла ситуация, когда (по-видимому) добавление второго конструктора копирования не...
157 просмотров

C++ видимость унаследованного конструктора
Когда я использую using вот так, почему конструктор наследуется публично? class Base { int x; public: Base(int x); }; class Derived : public Base { using Base::Base; }; Теперь я могу сделать: Derived d (2); Я думал, что...
163 просмотров

С++ с использованием объявления для пакета параметров
Я хотел бы определить класс, который наследуется от группы классов, но не скрывает некоторые конкретные методы этих классов. Представьте себе следующий код: template<typename... Bases> class SomeClass : public Bases... { public: using...
390 просмотров

разрешение перегрузки при использовании базовой функции-члена, введенной в производный класс
Согласно некоторым цитатам из стандарта: [over.match .функции]/4 [...] Для функций без преобразования, введенных объявлением использования в производный класс, функция считается членом производного класса с целью определения типа неявного...
37 просмотров
schedule 06.07.2022