Вопросы по теме 'using-declaration'
использование с именем базового класса для изменения допуска?
Мой друг показал мне следующий код
struct A {
virtual void f() = 0;
virtual void g() = 0;
};
struct AInternal : A {
virtual void f() { /* ... */ }
virtual void g() { /* ... */ }
};
Он использует AInternal как внутренний класс,...
145 просмотров
schedule
26.10.2021
Могут ли зависимые имена отображаться в конструкторах после подстановки шаблона в объявлении-использовании?
В этом примере:
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);...
176 просмотров
schedule
09.09.2021
Объявление использования не может повторяться в области действия функции. Почему это?
В [namespace.udecl]/10 у вас есть следующий пример:
namespace A {
int i;
}
namespace A1 {
using A::i;
using A::i; // OK: double declaration
}
void f() {
using A::i;
using A::i; // error: double declaration
}
Этот фрагмент...
272 просмотров
schedule
16.09.2022
Должен ли член класса использовать объявление с зависимым квалифицированным идентификатором зависимым именем?
В проекте N3337 стандарта C ++ 11 говорится в [namespace.udecl]
Объявление using вводит имя в декларативную область, в которой появляется объявление using.
Каждое объявление-использование - это объявление и объявление-член, поэтому их...
1666 просмотров
schedule
05.04.2023
Использование псевдонима для ссылки на анонимную структуру приводит к ошибке
Моя теория заключается в том, что в gcc есть ошибка. Следующее компилируется как в clang, так и в gcc:
using type = const struct {}&;
Но теперь, когда я меняю его на ссылку rvalue, он компилируется с clang, но не с gcc:
using type =...
184 просмотров
schedule
09.07.2023
Несоответствие переопределения в clang между struct и int
Следующая программа не выдает ошибок при компиляции с clang:
namespace X {
struct i {};
}
namespace Y {
using X::i;
struct i {};
}
int main() {}
Используем int вместо struct, тогда получим:
namespace X {
int i;
}...
396 просмотров
schedule
13.09.2023
Разрешение перегрузки между элементами шаблона в базовых и производных классах
Компилятор Microsoft (Visual Studio 2017 15.2) отклоняет следующий код:
#include <type_traits>
struct B
{
template<int n, std::enable_if_t<n == 0, int> = 0>
void f() { }
};
struct D : B
{
using B::f;...
242 просмотров
schedule
06.05.2023
Объявление использования существующего типа пространства имен и создание псевдонима типа
Это не вопрос о разнице между using и typedef для создания псевдонимов типов. Я хотел бы предоставить доступ к существующему типу из пространства имен внутри блока кода или функции.
Я нашел два разных способа:
Я могу «включить» тип с...
229 просмотров
schedule
19.11.2022
Правила использования объявлений c++
После прочтения принятого ответа от этот вопрос , я думал, что понял, почему программа не удалась, поскольку директива использования фактически не объявляет объект i в регионе . Однако имена, введенные объявлением using , могут использоваться...
76 просмотров
schedule
13.03.2023