![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
boostcoder |
|
||||||||||||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
всем снова доброго дня.
недавно, в GCC были реализованы User-defined Literals, и я за одно решил собрать mingw на основе trunk версии исходников. для "просветиться", так сказать. в стандарте и гугле выловил несколько примеров, и закодил такое:
все работает. вывод:
далее, увидел в стандарте такую форму записи:
и попробовал записать это так:
но получаю такую ошибку:
аргументы подставлять пробовал. методом тыка. по всякому. что я не правильно делаю? или может быть реализация еще не полная. полный код:
это первый вопрос. второй вопрос - что с этим делать, и как применять? третий - какого типа являются объекты/переменные(?) _degrees/_func1/_var_string ? спасибо. Добавлено через 4 минуты и 34 секунды
кстати на вики приводится такой же пример: http://en.wikipedia.org/wiki/C%2B%2B11#User-defined_literals Это сообщение отредактировал(а) boostcoder - 9.11.2011, 13:36 |
||||||||||||||
|
|||||||||||||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
На сколько я понял написанное в описании этой фичи, тебе необходимо добавить параметр в литерал _var_string...
кстати, а что значит "char..."? |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
чего я только туда не добавлял ![]() variadic template состоящий из переменного кол-ва чаров. |
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Это ужас. Такими стараниями еще чуть-чуть и они доведут С++ по уровню write-only до перла. Вот эти литералы, &&-ссылки (в следующем стандарте уже предусмотрели что-нибудь для &&&?), нагромождения в темплейтах, синтаксически ужасные лямбды... Все это очень печально.
В голове вертится мысль, что эти литералы можно как-то использовать в мета-программировании, но пока без конкретики. -------------------- You're face to face With man who sold the world |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
![]() лямбды очень даже юзабильные. это одно из применений. вот только хочется понять всю идею. |
|||
|
||||
newbee |
|
||||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Они полностью выбиваются из синтаксиса С++ (того, уже старого С++). ну вот пример из википедии:
-------------------- You're face to face With man who sold the world |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
прошу прощения за прямоту, но ты совершенно не в теме. внутри квадратных скобок размещается список захвата переменных в текущем скопе. и к аргументам он не имеет никакого отношения. Это сообщение отредактировал(а) boostcoder - 9.11.2011, 14:35 |
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
![]() -------------------- You're face to face With man who sold the world |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
они могут быть захвачены, как по ссылке,так и по значению.. без подсказки компилятор не знает как в конткретном случае поступать.. синтаксис да фу, но их теперешнее наличие ![]() и да это оффтопик.. Это сообщение отредактировал(а) mes - 9.11.2011, 17:13 |
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
-------------------- You're face to face With man who sold the world |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
банально - существование функционального объекта инкрементирует счетчик ссылок. Добавлено через 37 секунд похоже, что делать с сабжем, никто не знает... |
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
-------------------- You're face to face With man who sold the world |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
newbee, функтор может быть вызван не в контексте его создания, а гораздо позже..
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
насколько я понимаю, возвращаемый тип может быть любым ? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |