![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| EvilsInterrupt |
|
||||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Пишу шаблонный класс:
Главный вопрос: пытаюсь в get скопировать из вектора в T * алгоритмом std::copy , но не получается. ругается такой ошибкой:
вопрос, как это сделать ? Второстепенный: typedef typename VecT_t::iterator VecTItr_t; Почему в этом месте компиллер нуждается в написании ключевого слова "typename" ? |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| EgorTheBlade |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 5.12.2009 Репутация: нет Всего: -1 |
Подключите в свойствах проекта
-D_SCL_SECURE_NO_WARNINGS; |
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
>>-D_SCL_SECURE_NO_WARNINGS;
но тогда я лишусь проверки других функций, а не вот этого конкретного места. Как сказать компиллеру (MSVC 2008/2010) что именно в этом месте, а я отлично шарю чего делаю и все вычислил для этого ? Добавлено через 1 минуту и 19 секунд >>Это не ошибка, это предупреждение, был бы варнинг, то позволил бы выполнять код и до работал бы до поставленного мною бряка! а у меня на последней стоит бряк:
и не срабатывает! |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
т.е. слово в сообщении тебе ни о чем не говорит..если программа запускается - значит ошибок компиляции нет, а если оне неправильно работает то ошибки тебе надо искать в логике программы. Добавлено через 2 минуты и 8 секунд
|
||||
|
|||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Всем спасибо, был допущен некоторый баг ;))) + это отключение варнинга, вопрос решен! ;)
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Надеюсь не буду слишком назойливым если прошу что следует понимать под термином "dependant типы" ? ;)
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
зависимые от аргумента шаблона
Добавлено через 8 минут и 1 секунду вот пример когда t в одном случае является типом, а в другом значением http://codepad.org/7Wx0rYd5 а компилятор должен заранее знать, как именно квалифицировать зависимое имя. |
|||
|
||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Добавлено @ 11:49 EvilsInterrupt, зачем использовать приведения типов от std::size_t к знаковому int? Если же оно необходимо, тогда правилом хорошего тона считается использовать приведение С++ а не С. Т.е. static_cast, в данном случае. Это сообщение отредактировал(а) Леопольд - 18.8.2010, 11:50 -------------------- вопросов больше чем ответов |
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Леопольд,
>>зачем использовать приведения типов от std::size_t к знаковому int ну по идеологии size_t это тип хранящий разность двух указателей, чтобы мог вместиться любой указатель, который на любой платформе как правило равен размеру регистра, то этот тип тоже приравниваются к этому размеру регистра . В моем же случае хватит и int и предполагается что чел юзающий буфер, врядли будет внем хранить на 2 ГБ ))) думаю максимум 5 МБ т.е. инт за глаза! ;) >>тогда правилом хорошего тона считается использовать приведение С++ а не С. Т.е. static_cast, в данном случае. к нему еще привыкать надо, а я еще думаю в стиле С ))) но согласен, укор правилен ;) |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
если делаете шаблон, то зачем делать предположения за юзера ?! позвольте пользователю самому настроить необходимое. а чтоб не передавать кучу параметров в шаблон, погуглите насчет traits. В двух словах это такая структура, в которой описаны все типы и зависимости необходимые для настройки шаблона. |
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
mes,
Вы об этом ? >>если делаете шаблон, то зачем делать предположения за юзера ?! Затем чтоб лишний раз подумал прежде чем что-то сделать! Лично этот класс, пусть и шаблонный расчитан на использование мною и для моих нужд. В случае если он кому-то приглянется, чтобы четко знал что тут все нужно еще раз хорошо все просмотреть ;) |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Под пользователем подразумевается любой пользователь, и прежде всего Вы сами один раз определив нужный тип, Вы уже не будете путаться int там должен быть или не int не надо думать о других, делайте так, чтоб Вам было удобно и приятно .. Это сообщение отредактировал(а) mes - 18.8.2010, 12:46 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
||||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
xvr, Любого из тривививальных так сказать? ;))) т.е пользовательские сюда уже не полезут ;)
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Совсем любого. Переменная типа size_t способна вместить число, равное размеру чего угодно в памяти (т.е. проще говоря почти размеру виртуального адресного пространства). При этом она беззнаковая, т.к. объектов с отрицательным размером не бывает. |
|||
|
||||
| EvilsInterrupt |
|
|||
|
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
xvr, Хорошо,но какой будет нативный тип , при котором будут наиболее эффективными вычисления? Если не int то что? Не он потому что на некоторых платформах, он должен быть 64-бита при компиляции под 64, а он все еще 32 ! ;)
Таблица №1 |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
int_fast32_t из stdint.4 (C99)
|
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |