Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
C/C++
>
ANSI С/С++
(Модератор:
Вад
) > Тема:
оператор приведения типа
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: оператор приведения типа (Прочитано 6108 раз)
0 Пользователей и 1 Гость смотрят эту тему.
lapulya
Молодой специалист
Offline
оператор приведения типа
«
:
23-11-2010 12:07 »
а что говорит стандарт по поводу того, что я хочу определить вот такие оператор приведения типа?
class T
{
...
operator T() const;
operator const T&() const:
operator const T&();
operator T&();
};
законно ли это, т.е. не будет ли это считаться перегрузкой одинаковых функций, отличающихся только возвращающими значениями. gcc под Linux, говорит, что все хорошо, а вот MS VS 2010, советует мне идти далеко
Записан
С уважением Lapulya
Вад
Модератор
Offline
Пол:
Re: оператор приведения типа
«
Ответ #1 :
23-11-2010 12:29 »
Данный кусок в VS2005 собирается после правки синтаксической ошибки в 5 строке.
Разве что, 6я строка лишняя? И не уверен, не будет ли неоднозначности между возвратом значения и ссылки. В стандарт пока не заглядывал
Записан
lapulya
Молодой специалист
Offline
Re: оператор приведения типа
«
Ответ #2 :
23-11-2010 14:33 »
2005 студии у меня нет))), строго говоря класс шаблонный, и есть ли ошибка при вызове (типа неоднозначность при вызове)?
Код:
template<typename T>
class T
{
...
template<typename T>
operator T() const;
template<typename T>
operator const T&() const;
template<typename T>
operator const T&();
template<typename T>
operator T&();
}
T<int> t(10);
int i1 = t;
int& i2 = t;
const int& i3 = t;
const int& const i4 = t;
Записан
С уважением Lapulya
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
C/C++
>
ANSI С/С++
(Модератор:
Вад
) > Тема:
оператор приведения типа
Загружается...