Вопросы по теме '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 просмотров
schedule
16.04.2023
Объявление класса в той же области, что и при использовании компиляции объявлений в GCC, но не в MSVS
Корректна ли следующая программа в соответствии со стандартом С++?
namespace X { class A; }
namespace Y { using X::A; class A {}; }
int main() {}
Я получаю разные результаты с разными компиляторами:
gcc компилирует без ошибок.
Visual...
1213 просмотров
schedule
20.07.2023
Есть ли обходной путь для расширения пакета параметров при использовании объявлений [дубликаты]
Расширение пакета параметров при использовании объявлений не поддерживается. в C++14 , поэтому следующий код не компилируется:
template<typename T> struct A
{
virtual void foo(T);
};
template<typename... T> struct B:...
60 просмотров
schedule
02.10.2022
передача пакета параметров по сигнатуре устаревшей функции с использованием forward_as_tuple
В моем приложении я хотел бы передать пакет параметров поверх сигнатуры устаревшей функции и изменить значения. Вот код, который иллюстрирует мой вопрос с моими попытками в качестве комментариев:
#include <tuple>
#include <cassert>...
115 просмотров
schedule
15.06.2023
Удивительное поведение при наследовании конструктора множественного копирования
Начиная с C++11, может быть два конструктора копирования, один из которых принимает параметр типа T& , а другой — параметр типа const T& .
У меня возникла ситуация, когда (по-видимому) добавление второго конструктора копирования не...
157 просмотров
schedule
05.08.2022
C++ видимость унаследованного конструктора
Когда я использую using вот так, почему конструктор наследуется публично?
class Base {
int x;
public:
Base(int x);
};
class Derived : public Base {
using Base::Base;
};
Теперь я могу сделать:
Derived d (2);
Я думал, что...
163 просмотров
schedule
23.10.2022
С++ с использованием объявления для пакета параметров
Я хотел бы определить класс, который наследуется от группы классов, но не скрывает некоторые конкретные методы этих классов.
Представьте себе следующий код:
template<typename... Bases>
class SomeClass : public Bases...
{
public:
using...
390 просмотров
schedule
06.09.2022
разрешение перегрузки при использовании базовой функции-члена, введенной в производный класс
Согласно некоторым цитатам из стандарта: [over.match .функции]/4
[...] Для функций без преобразования, введенных объявлением использования в производный класс, функция считается членом производного класса с целью определения типа неявного...
37 просмотров
schedule
06.07.2022