Здравствуйте, _Winnie, Вы писали:
W> Вопрос: когда в C++ появится typeof ?
С хорошей вероятностью — в следующей версии языка (~2008). Среди адептов есть и
Страуструп:
http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1527.pdfPosted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Шахтер, Вы писали:
Ш>>Простейший пример, чего хотелось бы делать.
К>Ш>>template <class Ptr>
Ш>>void fun(Ptr ptr)
Ш>> {
Ш>> ...
Ш>> typeof(*ptr) object=*ptr;
Ш>> ...
Ш>> }
К>
К>Жалко ещё, что нельзя ещё вот так делать: my_vector.iterator v = my_vector.begin();
К>Потому что тогда с лёгкостью можно было бы определить макрос typeof
К>К>template<class T>
К>struct typeview_t { typedef T type; };
К>template<class T>
К>typeview_t<T> typeview(T t) { return typeview_t<T>(); }
К>#define typeof(t) typeview(t).type
К>
К>Кстати, а есть какие-то смысловые преграды к этому, или просто не удосужились?
Не просто нет, а реализация этой фичи в компиляторе -- дело пустяковое. Потому что после того, как компилятор отпарзит выражение, он получит дерево операций, и, дальше, он должен пройтись по этому дереву и вычислить точные типы всех промежуточных и конечного результатов. Есть только одна проблема, это вопрос о ссылках.
здесь(спасибо Павлу за ссылку
)
... << RSDN@Home 1.1.0 stable >>
Здравствуйте, Шахтер, Вы писали:
Ш>Не просто нет, а реализация этой фичи в компиляторе -- дело пустяковое. Потому что после того, как компилятор отпарзит выражение, он получит дерево операций, и, дальше, он должен пройтись по этому дереву и вычислить точные типы всех промежуточных и конечного результатов. Есть только одна проблема, это вопрос о ссылках.
А в чём эта проблема состоит?
... << RSDN@Home 1.1.2 stable >>
Здравствуйте, Кодт, Вы писали:
К> А в чём эта проблема состоит?
В том, что будет давать применение typeof/decltype к ссылке типа T&: T или T&.
http://rsdn.ru/Forum/Message.aspx?mid=503315#503315Автор: Павел Кузнецов
Дата: 12.01.04
Posted via RSDN NNTP Server 1.7 "Bedlam"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
_Winnie wrote:
> Вот есть такой шаблон, который отображает каждый тип в уникальное число (адрес статической переменной)
> >
> template <class T>
> struct TypeToX
> {
> static char c;
> };
>
>
Только вот небольшая незадача: это "уникальное число" невозможно узнать в compile-time и оно может различаться между запусками программы.
--
Maxim Egorushkin
MetaCommunications Engineering
http://www.meta-comm.com/engineering/Posted via RSDN NNTP Server 1.8 beta