другом месте кода я хочу обращаться к этой структуре, допустим в другой структуре
например:
struct Test2 {
testField: Test::a,
testField2: u64
}
Как это можно реализовать?
Это не имеет смысла, поскольку Test::a — это НЕ тип (а идентификатор).
Почему не имеет смысла? https://godbolt.org/z/M3serM
Ну вот Вы понимаете, что Вы там превратили идентификатор в его тип?
Так не имеет смысла концепция, или синтаксис в примере?
Ну, раз Вы не отличаете идентификаторы от типов, то не важно.
В моем примере внутри decltype не идентификатор.
Fully qualified member name? Не идентификатор? Ясно-понятно. 👍
trait HasA { type AType; } struct Test2 { field: <Test as HasA>::AType, }
Не так выразился. Я про то, что там может быть любое выражение
Аналога decltype в расте нет. Если в двух местах нужен один тип, то нужно в двух местах прописать один тип. Способы могут быть разные.
Обсуждают сегодня