Oct 10, 2006 20:42
сегодня я узнал опытным путем, что оказывается линкер (gcc -> collect2 -> ld) линкует статические либы к бинарнику в порядке обратном их появлению в коммандной строке, причем почему-то на это дело влияют разные уровни оптимизации и всякие другие опции компилятора.
вот ведь блядство, а.
work,
unix,
routine,
dumb
Leave a comment
кстати, можно тебе вопрос как к эксперту по c++ с мировым именем™?
Reply
вопрос задавай конечно, только ты мне льстишь все же :)
Reply
а вопрос такой: вот C++-сные include файлы для C-библиотеки, типа . насколько я понял из стандарта, они должны все класть в std (17.4.1.2). но все реальные реализации, которые я видел, кладут и в std и в global. я что-то понял не так? или реализации не соответстуют стандарту?
Reply
имхо соответствуют, т.к. никто не запрещает класть еще и в global, зато бенефит - совместимость с C, а недостаток - разные сигнатуры всяких isalpha/isdigit и проч.
Reply
Reply
собсна так и есть, просто cmath инклудит math.h и на основе него в namespace std запихивает все что нужно.
> а недостаток для пользователя такой - если забываешь писать std:: то получаешь не ту функцию
да, я про это и сказал, насчет isspace/isalpha, а если еще и using namespace std где-то сказать или выкрутасы с ADL, то можно получить секс по полной :)
Reply
Reply
Reply
Leave a comment