LINUX.ORG.RU

Функция-шаблон С++ в статической библиотеке?

 ,


0

3

Пишу под Debian, набросал библиотечку с набором функций. По ходу дела понадобилось в некоторых функциях работать с различными типами данных, описал как шаблоны. Теперь undefined reference при сборке проекта, который эту библиотеку подключает и вызывает функции-шаблоны. Можно ли это обойти? Или шаблоны только в рамках одного проекта могут быть используемы?


Ответ на: комментарий от anonymous

msvc pre2018 тоже не выбрасывает итд

У меня в начальном посте ключевое выражение «уважающий себя компилятор». Хотя да, смысл не выбрасывать мертый код при нулевой оптимизации есть. А эксперимент с -O0 я провел ради интереса (а не для оспаривания точки зрения об отсутствии гарантий).

P.S. А поскольку тема зашла, то желаю быстрой но чрезмерно болезненной смерти msvc.

KennyMinigun ★★★★★
()
Ответ на: комментарий от anonymous

Кстати, интересно еще сможет ли линкер что-то «дооптимизировать» в данной ситуации.

KennyMinigun ★★★★★
()
Ответ на: комментарий от tailgunner

Если в трети комментариев раздражение, а в двух третях — усталость, их и упоминать не стоит.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Я тебя не кастовал.

Считай это чем хочешь.

Вообще-то в комментарии Функция-шаблон С++ в статической библиотеке? (комментарий) действительно упомянут твой юзернейм, но каста там нет, а также комментарий не был изменён, что исключает возможность заметания следов. К чему такая драма?)

Virtuos86 ★★★★★
()
Ответ на: комментарий от i-rinat

А, наверное, ты считаешь, что в шаблонах нет гигиены?

Нет там никакой гигиены. Это понятие к шаблонам неприменимо, потому как оно применимо только в контексте макросов. Я же тебе всё уже сказал. И не надо меня ловить на моих утверждениях, что шаблоны - частный случай макросов. (Частный случай тут только в том, что шаблоны лишь только предназначены для генерации отдельных типов и функций.) Из того, что всякий слесарь Вася - это человек вовсе не следует, что всякий человек - это слесарь. Также из того, что шаблоны - это частный случай макросов вовсе не следует, что тебе шаблоны превращаются в «макросы с гигиеной».

azelipupenko
()
Ответ на: комментарий от Kuzy

Даже в лиспе это может быть не так.

Макры в лиспе - это функции. Их результатом всегда является код на Лиспе. Если этот результат не устроит ридер, то тебе передадут привет с ошибкой.

azelipupenko
()
Ответ на: комментарий от Kuzy

Как связаны макросы и ТЕКСТ?

Результатом расширения макроса является текст.

Даже в лиспе это может быть не так.

Приведи пример.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от azelipupenko

И не надо меня ловить на моих утверждениях, что шаблоны - частный случай макросов.

Так тебя уже поймали.

Из того, что всякий слесарь Вася - это человек вовсе не следует, что всякий человек - это слесарь.

А вот ты уже в логических суждениях поплыл. Никто не говорил, что если A⊆B, то B⊆A, которое ты тут пытаешься опровергнуть. Речь о том, что если A⊆B, то любой элемент A является элементом B. Просто по определению.

Так что то если шаблоны это частный случай макросов, то шаблоны являются макросами.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Так тебя уже поймали.

Только я об этом не в курсе.

А вот ты уже в логических суждениях поплыл. Никто не говорил, что если A⊆B, то B⊆A, которое ты тут пытаешься опровергнуть. Речь о том, что если A⊆B, то любой элемент A является элементом B. Просто по определению.

Ты говорил, что шаблоны в цепепе - это макросы с гигиеной. Но это не так, потому как макросы в цепепе можно считать лишь частным случаем макросов. Если бы ты так и сказал, то вопросов бы не возникло. Но ты именно утверждаешь, что шаблоны - это макросы, что конечно же является лишь у тебя на локалхосте в твоём жилище, либо у тебя в твоих фантазиях и домыслах. В реальности все твои потуги доказать, что шаблоны - это макросы остались лишь твоими потугами, никому не интересными.

Так что то если шаблоны это частный случай макросов, то шаблоны являются макросами.

В теории шаблоны являются частным случаем макросов. На практике - нет. Тебе уже многократно сказали, что шаблоны в цепепе не генерят код на уровне AST, как это делают настоящие макросы с гигиеной или без гигиены.

Я, конечно, понимаю, что ты, как и другие адепты цепепе, хотели бы видеть что-то подобное, как реальные макры в своём любимом цепепе. Но вам, хлопцы, придётся смирится с тем, что их там нет и не предвидится. Страуструп дал вам шаблоны. Поэтому вы можете, конечно, на своих конференциях фантазировать о чём угодно, но макросов у вас нет :-) Просто смиритесь :-) Либо смените язык :-)

azelipupenko
()
Ответ на: комментарий от anonymous

Это следствие воздействия C++ на мозг. Удивительно, как некоторые избегают этого негативного влияния даже после длительного взаимодействия с этим языком, наверное, особенности генетики организма.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

у вас лишняя зависть или переизбыток желчи ? что характерно, сами С++совики мало когда кого поливают или ставят заочно диагнозы, это свойственно только одептам других языков

anonymous
()
Ответ на: комментарий от tailgunner

Ладно я слегка отъехавший после ДР, но вы тут все какие-то слегка того...

В CL-е (это ведь один из лиспов? :)) макра может вернуть всё, что пожелаешь (как это воспримет ридер - другой вопрос), но чаще всего возвращается список (который list), а не текст (который строка?).

yyk ★★★★★
()
Ответ на: комментарий от azelipupenko

фантазировать о чём угодно, но макросов у вас нет :-) Просто смиритесь :-) Либо смените язык :-)

:-)

Ецсамое, ты случаем не с анонимуса раньше писал?

KennyMinigun ★★★★★
()
Ответ на: комментарий от anonymous

у вас лишняя зависть или переизбыток желчи ?

Позвольте полюбопытствовать, чему я должен завидовать?

что характерно, сами С++совики мало когда кого поливают или ставят заочно диагнозы, это свойственно только одептам других языков

Кто сейчас упомянул Евгения Охотникова? С его легкой руки многие «одепты других языков» заклеймены дебилами. А то можно и Царя некогда сишки, а ныне переползшего и на C++, вспомнить. Но тот поливает вообще всех и вся, но это можно рассматривать как множество, включающее в себя и «одептов других языков».

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Кто сейчас упомянул Евгения Охотникова?

Поминание имени моего в суе скудоумие говорящего обнажает.

С его легкой руки многие «одепты других языков» заклеймены дебилами.

А вы перечислите их поименно и увидите, что таковых едва ли с десяток наберется.

eao197 ★★★★★
()
Последнее исправление: eao197 (всего исправлений: 1)
Ответ на: комментарий от eao197

в суе

Это пишется слитно, но белорусам простительно допускать ошибки в неродном языке.

Кто сейчас упомянул Евгения Охотникова?

Поминание имени моего в суе скудоумие говорящего обнажает.

Подобная велиречивость довольно неуместна, достаточно было обойтись привычным «дебилом». Вас я сюда не кастовал, что это вы вышли на связь?

С его легкой руки многие «одепты других языков» заклеймены дебилами.

А вы перечислите из поименно и увидите, что таковых едва ли с десяток наберется.

Я занят и не испытываю интереса к подобного рода занятиям.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Это пишется слитно, но белорусам простительно допускать ошибки в неродном языке.

Да, теперь можно и просто дебилом обозвать.

Я занят и не испытываю интереса к подобного рода занятиям.

Тогда язык в жопу засуньте и не трепите языком почем зря.

eao197 ★★★★★
()
Ответ на: комментарий от Virtuos86

Одного более чем достаточно

anonymous
()
Ответ на: комментарий от Virtuos86

у вас слишком маленькая линейка, лорчик это как муравейник на отшибе в царстве жуков
царь в этом всем локальный клоун которого никто не знает
меряйте более глобально
и вот на глобальном уровне, я помню частенько появлялись всякие статейки о том как классно писать на Д,ГО,а с недавнего времени и РАСТЕ по сравнению с языком С++, где все так неуклюже тяжело и не понятно афтарам статей
и при этом я не могу припомнить соизмеримое количество таких же статей о том что С++ такой классный по сравнению с Д,ГО,РАСТОМ итд
т.е. на глобальном уровне С++совики полностью уверены в своем выборе и им похрен на другие языки, чего нельзя сказать о лагере противников

anonymous
()
Ответ на: комментарий от yyk

В CL-е (это ведь один из лиспов? :)) макра может вернуть всё, что пожелаешь (как это воспримет ридер - другой вопрос)

Это как макрос в Си++ может вернуть код на любом языке, но как воспримет это компилятор - другой вопрос.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

и при этом я не могу припомнить соизмеримое количество таких же статей о том что С++ такой классный по сравнению с Д,ГО,РАСТОМ итд

Для того, чтобы помнить такие статьи, нужно помнить конец 80-х.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

если такие статьи и могли быть, то разве что в журнале мурзилка
интернет в 80x и язык С++ слабо коррелируется и статей в нем не было

anonymous
()
Ответ на: комментарий от anonymous

С авторами статеек разбирайтесь сами, я такие не писал, а за других отвечать не собираюсь.
Объективно, у D, Rust, Go (каким фигом он сюда затесался, кстати?) есть преимущества перед C++, но статьи пишутся не по этой причине, а потому что у них нет (некоторых) недостатков C++, отсюда и энтузиазм. А еще эти статьи пишут те, кто НЕ хочет писать на C++, но вынужден, а тут вдруг появилась альтернатива.

на глобальном уровне С++совики полностью уверены в своем выборе и им похрен на другие языки, чего нельзя сказать о лагере противников

Я не на их стороне баррикад, поэтому могу только порадоваться за них.

Virtuos86 ★★★★★
()
Ответ на: комментарий от anonymous

и при этом я не могу припомнить соизмеримое количество таких же статей о том что С++ такой классный по сравнению с Д,ГО,РАСТОМ итд

Для того, чтобы помнить такие статьи, нужно помнить конец 80-х.

если такие статьи и могли быть, то разве что в журнале мурзилка
интернет в 80x и язык С++ слабо коррелируется и статей в нем не было

Бгг.

tailgunner ★★★★★
()
Ответ на: комментарий от Virtuos86

ну да, не облив же гразью того на чье место метят - подняться нельзя
а так я бы и не против если бы статейки были просто о новом языке без всяких сравнений с другим(и)
ну вот есть там какой то раст, он что то там умеет, ну и пусть умеет, зачем сразу искать аналогию в С++ и пытаться выставлять это как преимущество ? вывод очевиден

anonymous
()
Ответ на: комментарий от anonymous

вывод очевиден

Ага, люди греховны, подвержены порокам и склонны к ошибкам. Аминь.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Deleted

Мои скромные наблюдения. Власть разрушает своих носителей. Языки программирования, дарующие какие-то уникальные возможности, профдеформируют сознание программирующих на них. Единственное спасение для них — если их коммьюнити немногочисленно, тогда они не высовываются. Но если они более-менее прочно окопались в продакшене, пиши пропало. Perl — TMTOWTDI, Лисп (всевозможные вариации борщелиспов и схем) — макры, C — портируемый ассемблер, C++ — Си с классами, блэкджеком и шлюхами, PHP, JavaScript — вот неполный перечень. Если программировать на них и не смотреть ни на что другое, тихий сдвиг по фазе гарантирован, примеры по всему форуму можно наблюдать.

Это следствие воздействия C++

Но подтвердить этого ты не сможешь, так ведь ?-) Лол :-)

Ты вынудил слиться tailgunner'а (на самом деле нет), так что с тобой я спорить не стану.

Virtuos86 ★★★★★
()
Ответ на: комментарий от anonymous

емнип он ставил эксперимент на себе

Я еще молод, чтобы на мне отразились те факторы, о которых идет речь. Годков через 10 тоже буду брюзжать на молодежь, не исключено.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Власть разрушает своих носителей

Интересное наблюдение. Может быть, не спорю. Только кресты - это ж нифига не власть

Ты вынудил слиться tailgunner'а (на самом деле нет), так что с тобой я спорить не стану

Это ты сам решай (с)

Deleted
()
Ответ на: комментарий от Virtuos86

Ну т.е. вы горазды звиздеть, но за свой звиздешь не отвечать.

Я же не позволяю себе говорить что-то вроде «Vituos86 неоднократно писал, что соблазняет малолетних мальчиков», а на просьбу привести конкретную цитату, что-то вроде: «Я занят и не испытываю интереса к подобного рода занятиям.»

А вот вы себе позволяете. Да при этом еще и пытаетесь рассуждать о том, о чем вообще понятия не имеете (речь про белорусов и родной язык).

Так что да, вы трепло, которому лучше не чесать языком почем зря.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Откуда в вас столько говна? Эти несмешные и уже не раз виденные с вашей стороны фантазии про малолетних мальчиков в адрес оппонентов. Почему-то мне ни разу не пришло в голову назвать вас педерастом, хотя бы потому, что это некрасивый юмор сильно ниже пояса, причем в человеческом понимании, а не в нашем узком программистском мирке. Мне-то в общем, всё равно, только очевидно, что вы потеряли выдержку, а значит, спор проиграли.

В вас не чувства стиля, присущего по-настоящему талантливым троллям, но можно ведь держать себя в руках. И пишете вы неграмотно местами, разумеется, не потому что белорус, ибо родились и выучились еще в Советском Союзе, но это я слегка набросил, каюсь.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Эти несмешные и уже не раз виденные с вашей стороны фантазии про малолетних мальчиков в адрес оппонентов.

Как и было сказано: я не позволяю себе подобных выпадов, а вот вы позволяете.

eao197 ★★★★★
()
Ответ на: комментарий от Virtuos86

Это следствие воздействия C++ на мозг. Удивительно, как некоторые избегают этого негативного влияния даже после длительного взаимодействия с этим языком, наверное, особенности генетики организма.

Не мог бы ты раскрыть тему? О чём ты сейчас пытаешься рассказывать?

azelipupenko
()
Ответ на: комментарий от KennyMinigun

Ецсамое, ты случаем не с анонимуса раньше писал?

Все когда-либо писали с анонимуса.

azelipupenko
()
Ответ на: комментарий от Virtuos86

Раскрыл выше по треду.

Я видел твои высказывания выше по треду. Мне не понятно, почему, по-твоему, именно цепепе оказывает губительное влияние на психику?

azelipupenko
()
Ответ на: комментарий от azelipupenko

Функция-шаблон С++ в статической библиотеке? (комментарий) — исчерпывающее изложение моей позиции.

Мне не понятно, почему, по-твоему, именно цепепе оказывает губительное влияние на психику?

В твоем конкретном случае я указал именно на C++, потому что если пройти к началу этой подветки треда, анонимус прокомментировал твой комментарий, предположив, что ты — «родственник царя». Видимо, у него сработал триггер на

Ты говорил, что шаблоны в цепепе - это макросы с гигиеной. Но это не так, потому как макросы в цепепе можно считать лишь частным случаем макросов. Если бы ты так и сказал, то вопросов бы не возникло. Но ты именно утверждаешь, что шаблоны - это макросы, что конечно же является лишь у тебя на локалхосте в твоём жилище, либо у тебя в твоих фантазиях и домыслах. В реальности все твои потуги доказать, что шаблоны - это макросы остались лишь твоими потугами, никому не интересными.

«Потугами» очень любит бросаться царь. Могу разжевывать и дальше, но, надеюсь, ты в состоянии довести цепочку до конца.

Virtuos86 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.