0xd34df00d
16.01.2013 14:30 Azoth_primary
Я уже, конечно, ныл об этом, но плюсцы снова соснули, в частности, с невозомжностью вывода типа T в какой-нибудь такой функции:
template<typename T>
Phonon::MediaSource GetRandomBy (QList<Phonon::MediaSource>::const_iterator, std::function<T (MediaInfo)>);
по такому вызову:
GetRandomBy (sources, [] (MediaInfo t) → int { ... });
пришло время заботать джаву
А там чо, уже нормальные дженерики завезли?
конечно. пишешь MyTemplate<?> и не приходится париться из-за того, что не может вывести тип
Да ты даже вопроса не понял.
боян
алсо, ты уверен что там не будет неоднозначностей?
Уверен.
int addNames<T>( T first, T second ) { return first.Name() + second.Name(); }
int addNames<T extends Nameable>(final T first, final T second) { return first.name() + second.name(); }
жаваблядок закукарекал (
> extends Nameable
пиздец
т.е. по сути, в отличие от, в жабке есть концепты
как же ты заебал уже, а.
ты понимаешь, что здесь люди ПРОБЛЕМУ РЕШАЮТ? и ты им мешаешь?
ПРОБЛЕМУ РЕШАЮТ
ни разу не пиздец, это почти что :: (Nameable a) => этц
съеби отсюда, питушок
вот когда я в парашу пойду — тогда командовать мне будешь, понял? остальное не твоя територия.
шаришь
Но не ты, ты же не хаскельбог.
съеби, это теперь Java-тред
Ты съеби.
дедфуд, когда ты уже доростёшь до момента, где станешь понимать «слабые места» хачкеля? проще говоря, когда уже поймёшь, что он говно?
плюсы говно, например
двух грызунов этой сове
четверых.
Инкрементирую.
Я понимаю, что все говно, даже небо, даже Аллах.
послал Кадырову в твиттер ссылку на этот коммент
Ты бы делал Namable здесь, да? (Если речь про х-ль) Говорю же, пиздец.
Нахуй надо? Пусть компилятор сам все выведет.
Включая программу, по финальной сигнатуре.
Ну об том же и речь.
facepalm
дваждую, тащемта
ArrayList<Integer> li = new ArrayList<Integer>();
ArrayList<Float> lf = new ArrayList<Float>();
if (li.getClass() == lf.getClass()) // evaluates to true
System.out.println("Equal");
Принудительный type erasure — это же так круто!
Между прочим, если бы его не было, то можно было бы забацать dependent types на коленке (ну это так, для задротства и дрочения с тайпчекером).
ебический отсос
Дженерики в джава — позор, смейтесь над ними, унижайте, гоните их ссаным бустом.
ИЧСХ, в шарпе дженерики такой ерундой не страдают, но все равно инстациация в рантайме, а не компайл-тайме, как в плюсах.
Зато все плюшки типа рефлекшона дженериков и прочего.
Да, это знаковое отличие. Для меня скорее более важно, что в плюсах не вытащишь темплейт в паблишд интерфейс (экспортированные части). Вполне закономерный, логичный и правильный отсос, но очень обидный.
Я про шарп, насчет рефлекшона в жабе не знаю. Прозреваю, что там все так же уебищно, как все остальное в жабе.
Что ты называешь паблишд интерфейсом?
Я тоже про шарп сейчас. Рефлекшон в жабовских дженериках не может вытащить информацию о типе, поэтому дальше о чем-то говорить уже незачем о жабе.
Паблищд — то, что я указал в скобках: экспортированные части DLL-ки.
Ну таки да, вполне себе очевидное следствие механизма работы темплейтов в плюсах. Это как сожалеть, что зимой идет снег.
говно, плохо сделали