Re[7]: Регистронезависимый C++
От: AlexEagle Украина http://www.vik.oil
Дата: 24.05.05 16:52
Оценка:
Здравствуйте, ecco, Вы писали:

E>Это он не заценил. Кстати, у них ведь есть аналоги ++ и --: функции inc() и, если не ошибаюсь, dec()...


Ага, аналоги, типа while( Dec( i ) ) можно написать
Re[4]: Регистронезависимый C++
От: Аноним  
Дата: 24.05.05 17:42
Оценка:
Здравствуйте, Nazik, Вы писали:

N>Теперь вспомни комбинаторику и посчитай какого размера будет этот "ашничек". Как бы компилятор у тебя не подавился!!!


предлагаю такой вариант — проект писать с использованием этого хидера,
заказчикам отдавать без него

типа, обфускатор
Re: Регистронезависимый C++
От: Dmi3S Россия http://dmi3s.blogspot.com/
Дата: 24.05.05 18:00
Оценка: :)))
Здравствуйте, Аноним, Вы писали:

А>Как вы думаете имеет ли какое-либо практическое применение такой ашничек:


А>#define a A

А>#define b B
А>#define c C

Есть вариант чуть лучше:
#define i j
// I whish You happy debugging
Re[7]: Регистронезависимый C++
От: moudrick Россия http://community.moudrick.net/
Дата: 25.05.05 16:17
Оценка:
Здравствуйте, ecco, Вы писали:

E>Здравствуйте, AlexEagle, Вы писали:


AE>>а про +=, ++, *= и проч он не мечтает? я уже молчу про результат операции


E>Это он не заценил. Кстати, у них ведь есть аналоги ++ и --: функции inc() и, если не ошибаюсь, dec()...


E>А насчёт += и т.п.: не все ЦПП программеры их везде используют вместо i = i + ...; (есть примеры). Иногда эти операторы такие глюки делают, что не сразу врубисся, так вот!


inc() и dec() — это, как справедливо отмечено, не операторы, а ФУНКЦИИ (подпрограммы) со всеми вытекающими накладнами расходами.
Я понимаю, есть всякие птимизующие компиляторы, но насколько я заню, дельфино к ним не относится.
Re[8]: Регистронезависимый C++
От: Слава Шевцов Россия http://www.rentaguru.ru/
Дата: 25.05.05 16:51
Оценка:
Здравствуйте, _ks_, Вы писали:

E>>А насчёт += и т.п.: не все ЦПП программеры их везде используют вместо i = i + ...; (есть примеры). Иногда эти операторы такие глюки делают, что не сразу врубисся, так вот!

__>Это не операторы глюки делают. А кое-кто другой.

Ну почему чуть что — сразу программист?
----------------------------------------------------------------------------------------------
Rentaguru
Re[2]: Регистронезависимый C++
От: Аноним  
Дата: 25.05.05 17:10
Оценка:
Здравствуйте, Dmi3S, Вы писали:

DS>Здравствуйте, Аноним, Вы писали:


А>>Как вы думаете имеет ли какое-либо практическое применение такой ашничек:


А>>#define a A

А>>#define b B
А>>#define c C

DS>Есть вариант чуть лучше:

DS>
DS>#define i j
DS>// I whish You happy debugging
DS>


ага, и вписать это в precompiled headers в какой-нибудь крупный проект — пусть твои последователи разбираются.

100% что никто ничего менять не будет, просто будут про это "помнить"
Re[9]: Регистронезависимый C++
От: AlexEagle Украина http://www.vik.oil
Дата: 25.05.05 18:28
Оценка:
Здравствуйте, Слава Шевцов, Вы писали:

СШ>Ну почему чуть что — сразу программист?


все та же статистика...

Правда когда я программировал на реализации с++ в CA Visual Objects, там статистика была в пользу программиста, что приводило к тому что порой все ошибки просто списывались на среду разработки
Re[8]: Регистронезависимый C++
От: llirik  
Дата: 25.05.05 19:09
Оценка:
Здравствуйте, moudrick, Вы писали:

M>inc() и dec() — это, как справедливо отмечено, не операторы, а ФУНКЦИИ (подпрограммы) со всеми вытекающими накладнами расходами.


выглядят как функции, определены в System, так что практически встроены в язык. В связи с последним допустимо, думаю, считать операторами.

M>Я понимаю, есть всякие птимизующие компиляторы, но насколько я заню, дельфино к ним не относится.


слишком ты критичен к делфи, скорее предубежден . Никаких накладных расходов:

inc(1) есть просто inc eax, 1 к примеру (ну и где тут накладные расходы)

посмотри на генерируемый код для инструкции case, разве там плохая оптимизация?
... << RSDN@Home 1.1.4 beta 7 rev. 454>>
Мне твоя Москва нравится, и обратно в Россию я не вернусь! (с) мыльная о.
Re[9]: Регистронезависимый C++
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.05.05 06:19
Оценка:
Здравствуйте, llirik, Вы писали:
L>выглядят как функции, определены в System, так что практически встроены в язык. В связи с последним допустимо, думаю, считать операторами.
Более точно этот раздел называется functions requiring compiler magic
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Регистронезависимый C++
От: Vamp Россия  
Дата: 26.05.05 08:04
Оценка:
M>inc() и dec() — это, как справедливо отмечено, не операторы, а ФУНКЦИИ (подпрограммы)
А в чем разница?
Да здравствует мыло душистое и веревка пушистая.
Re[9]: Регистронезависимый C++
От: tinytjan  
Дата: 26.05.05 08:16
Оценка:
Здравствуйте, Vamp, Вы писали:


M>>inc() и dec() — это, как справедливо отмечено, не операторы, а ФУНКЦИИ (подпрограммы)

V>А в чем разница?

Не функции а процедуры (которые войд) -- они значение не возвращают.
Поэтому при написании while ( dec(i) ) — начнется ругань -- типа тип выражения д.б. boolean.
Re[3]: Регистронезависимый C++
От: ecco Россия  
Дата: 26.05.05 08:18
Оценка: :))) :))
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Dmi3S, Вы писали:


DS>>Здравствуйте, Аноним, Вы писали:


А>>>Как вы думаете имеет ли какое-либо практическое применение такой ашничек:


А>>>#define a A

А>>>#define b B
А>>>#define c C

DS>>Есть вариант чуть лучше:

DS>>
DS>>#define i j
DS>>// I whish You happy debugging
DS>>


А>ага, и вписать это в precompiled headers в какой-нибудь крупный проект — пусть твои последователи разбираются.


А>100% что никто ничего менять не будет, просто будут про это "помнить"

А>

Есть предложение:
#ifdef _DEBUG
#define i j
#else
#define j i
#endif

Re[5]: Регистронезависимый C++
От: xtile  
Дата: 26.05.05 08:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Nazik, Вы писали:


N>>Теперь вспомни комбинаторику и посчитай какого размера будет этот "ашничек". Как бы компилятор у тебя не подавился!!!


А>предлагаю такой вариант — проект писать с использованием этого хидера,

А>заказчикам отдавать без него

А>типа, обфускатор


Какой-такой обфускатор ? Лечится скриптом из 2х строк.
Re[10]: Регистронезависимый C++
От: AlexEagle Украина http://www.vik.oil
Дата: 26.05.05 08:31
Оценка:
Здравствуйте, tinytjan, Вы писали:

T>Здравствуйте, Vamp, Вы писали:



M>>>inc() и dec() — это, как справедливо отмечено, не операторы, а ФУНКЦИИ (подпрограммы)

V>>А в чем разница?

T>Не функции а процедуры (которые войд) -- они значение не возвращают.


К сожалению это справедливо для всех небулевых операторов паскаля Поэтому в данном случае разница между dec и оператором чисто формальная (операторы как правило обозначаются небуквами, ну кроме is, in, and, not и проч)
Re[4]: Регистронезависимый C++
От: tinytjan  
Дата: 26.05.05 08:43
Оценка:
Здравствуйте, Nazik, Вы писали:

N>Теперь вспомни комбинаторику и посчитай какого размера будет этот "ашничек". Как бы компилятор у тебя не подавился!!!

{...}

От себя добавлю
Если в коде будет хотябы одна переменная длиной 20, то
количество вариантов ее записи будет равно 2^20

длина строки определения
#define Abcdefghijklmnopqrst abcdefghijklmnopqrst равна 50 символов
Соответственно при описании в ашке только этой переменной ашка выйдет больше чем 50 метров!!!!

так что дефайны здесть не помощник.
Re[4]: Регистронезависимый C++
От: AlexEagle Украина http://www.vik.oil
Дата: 26.05.05 08:50
Оценка:
Здравствуйте, ecco, Вы писали:

E>Есть предложение:

E>
E>#ifdef _DEBUG
E>#define i j
E>#else
E>#define j i
E>#endif
E>



Вот это талант, вот это полет мысли, гигант ! Уважаю

Но для тех кто хочет добиться регистронезависимости на с++ могу предложить CA Visual Objects.... там кстати вышеописанный код дефайнов и много другого прекрасного, рандомного уже встроены в систему

как советует мой коллега, на линуксе в компайлер с++ можно добавить UPPERCASE при синтаксическом разборе — вот тут уж что-то да получится
Re[10]: Регистронезависимый C++
От: moudrick Россия http://community.moudrick.net/
Дата: 26.05.05 09:30
Оценка:
Здравствуйте, tinytjan, Вы писали:

T>Здравствуйте, Vamp, Вы писали:



M>>>inc() и dec() — это, как справедливо отмечено, не операторы, а ФУНКЦИИ (подпрограммы)

V>>А в чем разница?

T>Не функции а процедуры (которые войд) -- они значение не возвращают.

T>Поэтому при написании while ( dec(i) ) — начнется ругань -- типа тип выражения д.б. boolean.

Да? Тогда все даже хуже, чем я думал...
Компайцлер magic — хорошо. Нет накладных расходов.
Но... значение то в регистре можно вернуть для дальнейшего использования в большом выражении.

Да и тогда полного счастья все равно не будет.
Ибо для использования в выражении в С есть префиксная форма и постфиксная.
Re[11]: Регистронезависимый C++
От: tinytjan  
Дата: 26.05.05 09:38
Оценка: -1
Здравствуйте, moudrick, Вы писали:

M>Здравствуйте, tinytjan, Вы писали:


T>>Здравствуйте, Vamp, Вы писали:



M>>>>inc() и dec() — это, как справедливо отмечено, не операторы, а ФУНКЦИИ (подпрограммы)

V>>>А в чем разница?

T>>Не функции а процедуры (которые войд) -- они значение не возвращают.

T>>Поэтому при написании while ( dec(i) ) — начнется ругань -- типа тип выражения д.б. boolean.

M>Да? Тогда все даже хуже, чем я думал...

M>Компайцлер magic — хорошо. Нет накладных расходов.
M>Но... значение то в регистре можно вернуть для дальнейшего использования в большом выражении.

M>Да и тогда полного счастья все равно не будет.

M>Ибо для использования в выражении в С есть префиксная форма и постфиксная.

И тем не менее я не знаю кода написанного на c++, который нельзя былобы написать на Делфи. Только с бОльшими трудозатратами.
Поправьте если я неправ.

З.Ы. Не перерастет ли это в очередную священную войну?
Re[12]: Регистронезависимый C++
От: AlexEagle Украина http://www.vik.oil
Дата: 26.05.05 09:47
Оценка:
Здравствуйте, tinytjan, Вы писали:

T>И тем не менее я не знаю кода написанного на c++, который нельзя былобы написать на Делфи. Только с бОльшими трудозатратами.

T>Поправьте если я неправ.

Дальше лучше — я не знаю такого кода на с++ который нельзя было бы переписать на асме (вариант, на машинных кодах ). Про трудозатраты молчу.

Но ведь в чем преимущество — в низких трдозатратах и в гибкости используемого инструментария для выбранной задачи... Именно поэтому разные задачи решают разными инструментальными средствами

T>З.Ы. Не перерастет ли это в очередную священную войну?


Там и так мусора хватает... А из юмора по-моему еще никто не уходил
Re[5]: Регистронезависимый C++
От: MShura  
Дата: 26.05.05 09:52
Оценка:
Здравствуйте, tinytjan, Вы писали:

T>Здравствуйте, Nazik, Вы писали:


N>>Теперь вспомни комбинаторику и посчитай какого размера будет этот "ашничек". Как бы компилятор у тебя не подавился!!!

T>{...}

T>От себя добавлю

T>Если в коде будет хотябы одна переменная длиной 20, то
T>количество вариантов ее записи будет равно 2^20

Что то не так с комбинаторикой
Английских символов 27, плюс 10 символов цифр, плюс другие символы, в итоге как минимум 37.
С учетом регистра 37+20 = 57.
Переменную из 20 символов можна записать 57^20 способов
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.