Вообще-то эта опция (-mno-inline-all-stringops) юзается по умолчанию. Если указать -m-inline-all-stringops, то получим что-то вроде Код (ASM): pushl %ebp cld movl %esp, %ebp pushl %edi movl 8(%ebp), %edx movl $4, %ecx movl 16(%ebp), %edi movw $0, (%edx) movl 12(%ebp), %eax movl $1024, %edx movl $0, (%eax) xorl %eax, %eax rep stosl movl 20(%ebp), %edi testl $1, %edi je L2 movb $0, (%edi) movl $1023, %edx incl %edi L2: testl $2, %edi je L3 movw $0, (%edi) subl $2, %edx addl $2, %edi L3: testl $4, %edi je L4 movl $0, (%edi) subl $4, %edx addl $4, %edi L4: cld movl %edx, %ecx shrl $2, %ecx rep stosl testb $2, %dl movl %edi, %eax je L5 movw $0, (%edi) addl $2, %eax L5: testb $1, %dl je L1 movb $0, (%eax) L1: popl %edi popl %ebp ret без call, но все с тем же проклятущим stosl. (подозрительным голосом) А так ли хорошо вы знаете компилятор, как пытаетесь на меня наехать?
если цитируете, то цитируйте целиком всю фразу, а не вырывайте из кнтекста: чтобы знать как всё это работает. в противном случае, начнут вылазить баги непонятно откуда.
cupuyc а что разве смысл не тот? не может такого быть у адекватной промышленной либы, а только у ишаков бенгальских ) закрывайте тему!
да. второй такой-же. смысл такой: я пишу прогу. толком не умею работать авто птрами или с чем-либо ещё. взял авто птры из сторонней либы. где-то неправильно освободил указатель или неправильно что-то присвоил или..., в итоге получил эксепшн в другом месте программы и не понимаю откуда этот эксепшн вылез. при чём тут разработчики stl??? я не умею программировать - поэтому и задаю вопрос на форуме. я ни в коем случае не хочу оскарбить разработчиков stl, atl или чего бы там ни было. я хочу увидеть дискуссию чтобы принять для себя окончательное решение. все мои посты нужно так подробно расписывать?
cupuyc каждый может что-то ляпнуть не подумав, но зачем отпираться от этого? в твоей формулировке ты их на 0 помножил и никакой многозначности.. согласись что ляпнул и всё, ничего страшного. так сказать "не удачно сформулировал". поизучай сорсы стл, а если что не понравиться, подделай под себя есть куча хороших доков по стл на великом и могучем ,что бы правильно её использовать. если надо, пиши в личку, т.к. здесь варез запрещён, выложу
вот именно - зачем меня оскарблять, недочитав/непоняв, мой пост. никаких прямых оскарблений я никому не предъявлял - так что и не надо было разводить всю эту болтавню. есть на васме такой народ - хлебом не корми - дай какую-нибудь гадость написать: вот, какие тупые участники форума, какие тупые вопросы, закрыть тему и т.д.
что касается посмотреть - я конечно же посмотрю. но Вы совершенно не читаете сообщения, перед тем, как отвечать:
cupuyc так это про то , за кого Вы их держите, а про Вас ни слова. делайте как хотите, мне уже пофигу
Код (Text): ; 134 : { push esi ; 135 : std::auto_ptr<int> p ( new int ); mov esi, 1147431726 ; 44646b2eH push esi push 4 push 1 call DWORD PTR __imp__ExAllocatePoolWithTag@12 ; 136 : } test eax, eax je SHORT $LN19@foo push esi push eax call DWORD PTR __imp__ExFreePoolWithTag@8 $LN19@foo: pop esi ret 0
А если исходный код я меняю на такой Код (Text): void foo() { std::auto_ptr<int> p ( new int ); std::auto_ptr<int> p2; } то ассемблерный не меняется