0xd34df00d
26.10.2012 11:10 Aedalus
Во-первых, шланг няша и парсит-ругается даже на тела темплейтных функций, которые никогда не были инстанциированы. Это год.
Что не гуд — это сами плюсы. Пытаюсь написать темплейтную структуру, рекурсивно идущую по std::tuple и выполняющую данный функтор для каждого элемента, и обламываюсь:
non-type template argument depends on a template parameter of the partial specialization
:(
Recommended by:
@pooq: моча съела говно
гцц тоже уже умеет
покажи кот
4.6 не ругнулся.
http://bpaste.net/show/MYQ9jmj8IWLdl7Wmf...
>Во-первых, шланг няша и парсит-ругается даже на тела темплейтных функций, которые никогда не были инстанциированы.
SFINAE ?
Нет.
Что нет? Он же будет пиздеть на все enable_if по такой логике.
Для корректной работы SFINAE нужен хотя бы один незафейленный сабститюшен, очевидно.
(что не тот случай при отсутствии специализаций, например)
запускай не от нуля до tuple_size<>, а наоборот
Слишком скучно. Хочется сделать так.
Спасибо, кэп. Но ведь зафейленный сабститьюшн не инстациирован, а ты пишешь, что неинстациированные тоже проверяются. Или не ?
тобишь ты пишешь специализацию когда pos = 0, и оно не будет зависеть
если тебе нужно обрабатывать именно в этом порядке, просто сделай вычитание tuple_size — i
Ок, я некорректно написал.
У меня в хедере есть некий ТЕМПЛЕЙТ, пока нигде не используемый. Вон шланг его парсит и проверяет, а гцц — нет.
Вопрос не в этом, а в том, схуябы так.
а, ок
lmgfy
ISO C++03 14.5.4/9 says
A partially specialized non-type argument expression shall not involve a template parameter of the partial specialization except when the argument expression is a simple identifier.
алсо погугли про C++11
Это в 11-режиме. std::tuple же, блядь.
Пиздец.
Я умею читать сообщение об ошибке. Вопрос в том, почему так сделали и почему это нелегально?
гуглить надо же
скорее всего ломает логику где-то
хотя в данном конкретном случае ты можешь передать стоп значение как отдельный аргумент темплейта и завернуть это всё в другой темплейт
ЕХАЛ ТЕМПЛЕЙТ ЧЕРЕЗ ТЕМПЛЕЙТ
а у тебя щаз и так, ехал аргумент темплейта через аргумент
Следующий пост будет еще круче, stay tuned.