Форум программистов, компьютерный форум CyberForum.ru

Глобальная перезагрузка операторов - C++

Восстановить пароль Регистрация
 
kvadro
11 / 9 / 1
Регистрация: 12.03.2012
Сообщений: 127
06.09.2013, 14:47     Глобальная перезагрузка операторов #1
Есть код:

C++
1
2
3
4
5
6
7
8
9
template< class Value >
class MyClass
{
    Value value_;
};
 
 
template< class V >
bool operator<( const MyClass< V > &, const V &other ) = delete;
в gcc и clang всё прекрасно собирается.
В VS ( v120_CTP_Nov2012 ) выдаёт ошибки:

1>error C2072: 'operator <' : initialization of a function
error C2988: unrecognizable template declaration/definition
error C2059: syntax error : '<end Parse>'
error C2143: syntax error : missing ';' before '{'
error C2447: '{' : missing function header (old-style formal list?)
Что не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2013, 14:47     Глобальная перезагрузка операторов
Посмотрите здесь:

C++ Перезагрузка операторов Помогите
Квадрат - перезагрузка операторов C++
C++ Глобальная переменная
C++ Перезагрузка операторов.
C++ перезагрузка операторов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
06.09.2013, 14:53     Глобальная перезагрузка операторов #2
Цитата Сообщение от kvadro Посмотреть сообщение
bool operator<( const MyClass< V > &, const V &other ) = delete;
а где тело функции
kvadro
11 / 9 / 1
Регистрация: 12.03.2012
Сообщений: 127
06.09.2013, 14:57  [ТС]     Глобальная перезагрузка операторов #3
Зачем?
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
06.09.2013, 14:58     Глобальная перезагрузка операторов #4
перегрузка оператора должна что то делать, по крайней мере что то возвращать
kvadro
11 / 9 / 1
Регистрация: 12.03.2012
Сообщений: 127
06.09.2013, 15:01  [ТС]     Глобальная перезагрузка операторов #5
перегрузка оператора должна что то делать, по крайней мере что то возвращать
Я указал спецификатор delete, она ничего не должна делать, прога неявно ссылается на её.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
06.09.2013, 15:05     Глобальная перезагрузка операторов #6
Цитата Сообщение от kvadro Посмотреть сообщение
спецификатор delete
видимо студия еще не все фишки из C++11 поддерживает
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
06.09.2013, 15:07     Глобальная перезагрузка операторов #7
http://msdn.microsoft.com/en-us/libr.../hh567368.aspx

Defaulted and deleted functions NO
Четко написано же.
kvadro
11 / 9 / 1
Регистрация: 12.03.2012
Сообщений: 127
06.09.2013, 15:13  [ТС]     Глобальная перезагрузка операторов #8
видимо студия еще не все фишки из C++11 поддерживает
Вопрос - как с переходом на intel? Сложно? Просто устал с этим vs - C++11 почти не реализован, x64 инлайн asm не поддерживается.

Добавлено через 3 минуты
Четко написано же.
Не поддерживается только default, delete поддерживается.
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
06.09.2013, 15:15     Глобальная перезагрузка операторов #9
Цитата Сообщение от kvadro Посмотреть сообщение
delete поддерживается.
Тогда почему не компилируется?
C++
1
2
3
4
5
6
7
class test
{
public:
    test(const test&) = delete;
};
 
int main() { return 0; }
kvadro
11 / 9 / 1
Регистрация: 12.03.2012
Сообщений: 127
06.09.2013, 15:17  [ТС]     Глобальная перезагрузка операторов #10
Петррр
Наверное потому что у Вас тулсет версии v110?
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
06.09.2013, 15:19     Глобальная перезагрузка операторов #11
Цитата Сообщение от kvadro Посмотреть сообщение
Наверное потому что у Вас тулсет версии v110?
По-русски можно? Visual Studio 2012
kvadro
11 / 9 / 1
Регистрация: 12.03.2012
Сообщений: 127
06.09.2013, 15:25  [ТС]     Глобальная перезагрузка операторов #12
По-русски можно? Visual Studio 2012
Platform toolset - набор набор инструментов ( компилятор, линковщик и тд ). В 12 студии стоит версии v110, на сайте майкрософта можно скачать версии v120 ( он будет в 13 студии ), там расширенная поддержка C++11 ( delete, шаблоны с переменным количеством аргументов и тд ).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2013, 15:26     Глобальная перезагрузка операторов
Еще ссылки по теме:

Перезагрузка операторов "неоднозначный operator" C++
C++. Перезагрузка операторов (Написать класс Дробь с полями числитель и знаменатель) C++
Перезагрузка операторов! C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
06.09.2013, 15:26     Глобальная перезагрузка операторов #13
Спасибо, что просветил.
Yandex
Объявления
06.09.2013, 15:26     Глобальная перезагрузка операторов
Ответ Создать тему
Опции темы

Текущее время: 06:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru