Здравствуйте, johny5, Вы писали:
J>Всем привет. J>Есть ли способ сгенерировать этот ужас с помощью Boost.Preprocessor?
Есть, конечно, ничего сложного http://www.boostpro.com/mplbook/preprocessor.html
Тебе нужно расширение по количеству ParamClass/ParamType?
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, johny5, Вы писали:
J>>Всем привет. J>>Есть ли способ сгенерировать этот ужас с помощью Boost.Preprocessor? J>Есть, конечно, ничего сложного J>http://www.boostpro.com/mplbook/preprocessor.html
Хорошая ссылка, спасибо.
J>Тебе нужно расширение по количеству ParamClass/ParamType?
Да.
Здравствуйте, rg45, Вы писали:
R> . . . только параметр по умолчанию придется задавать всегда явно:
Хотя нет, можно сохранить возможность неявного задания значения по умолчанию, если специальным образом обработать случай, когда последний параметр не является указателем на член:
Однако, нетрудно заметить, что код стал более громоздким. Это произошло потому, что из-за известного бага gcc (вернее недоработки), реализацию пришлось выполнить на шаблонах структур.
Ну, и кроме того, что это решение выглядит более громоздким, его преимущества по сравнению с предыдущим кажутся мне достаточно сомнительными.
--
Не можешь достичь желаемого — пожелай достигнутого.
Здравствуйте, rg45, Вы писали:
R>Это произошло потому, что из-за известного бага gcc (вернее недоработки), реализацию пришлось выполнить на шаблонах структур.
он же пофикшен.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Здравствуйте, niXman, Вы писали:
R>>Это произошло потому, что из-за известного бага gcc (вернее недоработки), реализацию пришлось выполнить на шаблонах структур.
X>он же пофикшен.
Здравствуйте, rg45, Вы писали:
R>Однако, в 4.7.2 выдает все ту же ошибку: http://liveworkspace.org/code/xooeM$0
ну да, не пояснил то, что этот баг пофикшен в trunk(4.8.0), 4.7-branch(4.7.3), 4.6-branch(4.6.4)
все эти три версии кандидаты на ближайший релиз.
в 4.8.0 этого бага нет: http://liveworkspace.org/code/xooeM$1
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Здравствуйте, niXman, Вы писали:
R>>Однако, в 4.7.2 выдает все ту же ошибку: http://liveworkspace.org/code/xooeM$0 X>ну да, не пояснил то, что этот баг пофикшен в trunk(4.8.0), 4.7-branch(4.7.3), 4.6-branch(4.6.4) X>все эти три версии кандидаты на ближайший релиз. X>в 4.8.0 этого бага нет: X>http://liveworkspace.org/code/xooeM$1
Да, я сразу заметил, что в 4.8.0 этой проблемы уже нет. Тем не менее, попытка переделать мой пример
на шаблонах функций (без использования шаблонных классов) оказалась неудачной. Я сейчас еще раз проверил, дефект был в моей реализации, а не в компиляторе. Спасибо.
--
Не можешь достичь желаемого — пожелай достигнутого.