using< /code> Объявление является распространенным явлением и работает для других методов членов, включая конструктор, но для оператора конверсии кажется не таким простым.
GCC имеет синтаксис с использованием Base :: Оператор Base < /code> для введения, который, отрицаемый Clang.
Declare Прямая функция принимается одним из компилятов, но это немного сложное. Clang 19.1.7, std = c ++ 20. Наследование Sfinae отклоняется от Clang.struct base {
template requires (std::is_integral_v)
operator T() const { printf("to int\n"); return 0; }
};
struct derived: base {
//using base::operator; // denied by clang & gcc
//using base::operator base; // denied by clang
template requires (std::is_floating_point_v)
operator T() const { printf("to float\n"); return 0; }
// both accept
template requires requires { (T) std::declval(); }
operator T() const { return base::operator T(); }
};
derived D;
(int) D; // -> to int
(float) D; // -> to float
Подробнее здесь: https://stackoverflow.com/questions/794 ... base-class
Как лучше всего представить шаблон актерский состав ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
.Net System.invalidcastException Проблема, когда не нужно применять актерский состав
Anonymous » » в форуме C# - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
.Net System.invalidcastException Проблема, когда не нужно применять актерский состав
Anonymous » » в форуме C# - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
.Net System.invalidcastException Проблема, когда не нужно применять актерский состав
Anonymous » » в форуме C# - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
.Net System.invalidcastException Проблема, когда не нужно применять актерский состав
Anonymous » » в форуме C# - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-