Заблокирован
|
|
1 | |
Запрет одного преобразования16.02.2012, 01:06. Показов 2291. Ответов 25
Метки нет (Все метки)
Есть ли в Visual C++ 2010 какая-нибудь возможность указать компилятору, что всякое неявное преобразование от числового типа в тип bool является ошибкой?
0
|
16.02.2012, 01:06 | |
Ответы с готовыми решениями:
25
MinGW запрет неявного преобразования типов Запрет сужающего преобразования. Инициализация списком. Как это применять на практике? Как в VBA в поле Textbox сделать запрет на ввод более одного слова (или запрет на ввод пробелов)? Запрет преобразования базы данных в другую версию |
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||||||
16.02.2012, 01:16 | 2 | |||||
thick_int, не думаю что есть такая возможность, не используйте bool вообще если есть проблемы с преобразованием к нему.
Добавлено через 33 секунды Или это Вы хотите условия вроде
0
|
Каратель
|
|
16.02.2012, 01:17 | 3 |
изучай опции компилятора http://msdn.microsoft.com/en-u... 1t1wy.aspx
в частности http://msdn.microsoft.com/en-u... ezb7y.aspx мб чего и найдешь но думаю вряд ли такой запрет есть
0
|
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
|
|
16.02.2012, 01:23 | 4 |
thick_int, только ежели оборачивать типы в классы и задавать explicit конструктор. тогда не будет никаких неявных преобразований.
0
|
385 / 229 / 12
Регистрация: 06.07.2011
Сообщений: 512
|
|
16.02.2012, 01:48 | 5 |
интересна ситуация, в которой это может понадобиться... или просто перестраховка от излишеств программиста?
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
16.02.2012, 07:45 | 9 | |||||
thick_int, используйте стандартные функторы отношений:
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
16.02.2012, 08:31 | 10 | |||||
silent_1991, у С++ и так с читаемостью не очень, а ты предлагаешь такие решения
thick_int, насчет "покурить опции компилятора" уже посоветовали. Например для gcc получить желаемое поведение для кода:
1
|
silent_1991
|
16.02.2012, 09:21
#11
|
Не по теме: Nameless One, ну так какой вопрос))) А то сегодня мы запретили присваивание в условии, а завтра удаляем невалидный указатель.
0
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
16.02.2012, 14:16 | 12 |
Ну можно поставить в опциях VS "Treat warnings as errors"
0
|
Заблокирован
|
|
16.02.2012, 14:59 | 13 |
Студия кажет варнинги, если внутри условия встретит =, вместо ==.
Так же, в студии есть возможность приравнять варнинг к ошибке. /we n Treats the specific compiler warning as an error where n is a compiler warning. For example, /we4326 flags warning number C4326 as an error. Можно попросить компилятор определенные предупреждения расценивать как ошибку.
1
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
16.02.2012, 15:02 | 14 |
Гмм. А если в каком-то месте программы это не ошибка?
0
|
Заблокирован
|
|
16.02.2012, 15:06 | 15 |
Для какого то особого места варнинг можно "временно отключить" , после прохождения этого места "снова включить"
http://msdn.microsoft.com/en-u... s.71).aspx
0
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
16.02.2012, 15:12 | 16 |
Ну, в общем, это-то понятно.....
Непонятно другое: зачем вообще это понадобилось ТС ? Подобное преобразование входит в Standard conversions наряду с другими. Если же ТС хочет заведомо обезопасить себя от кривых ручек - добро пожаловать в более безопасный язык - C#, например. Который как раз и разрабатывался соответствующим образом. Нет?
0
|
Заблокирован
|
|
16.02.2012, 15:25 | 17 |
Если хочется писать код на более мощном и быстром языке, и при этом есть возможность "бесплатно" обезопасить код, почему бы этим не воспользоваться?
Лично я вообще никакие дополнительные ключики компилятору не ставлю. Однако не пропускаю ни одного варнинга. Варнингов быть не должно в принципе. Даже если сие - задумка автора а все одно - суть мина замедленного действия, и тормоз для сопровождения, а посему не быть ей в коде. А тот кто с этим не согласный, пусть приведёт реальный пример, где конструкцию вида: if(a=b) {...} нельзя преобразовать к виду: a=b; if(a!=0) {...} Или идет нафег.
0
|
Заблокирован
|
|||||||||||
16.02.2012, 15:46 [ТС] | 19 | ||||||||||
Шарп просто убивает вот таким косяком.
0
|
Заблокирован
|
|
16.02.2012, 16:03 | 20 |
1
|
16.02.2012, 16:03 | |
16.02.2012, 16:03 | |
Помогаю со студенческими работами здесь
20
Преобразования одного типа в другой Запрет регистрации с одного IP Циклическое применение одного преобразования к разным столбцам Запрет двух сессий с одного ip Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |