从D

时间:2016-04-19 20:25:31

标签: metaprogramming d

我想创建一个变量的非const副本。我在一个模板化函数中执行此操作,该函数具有in ref输入,因此类型(T)具有const集。我在https://dlang.org/phobos/std_traits.html中看到ConstOf函数,但我找不到反函数,因此我可以从T获得非const类型。

2 个答案:

答案 0 :(得分:6)

你可能会感兴趣 std.traits.Unqual

请注意,这会删除已删除所有限定符的类型,而不仅仅是const

答案 1 :(得分:2)

如果要从变量中删除所有类型限定符,只需执行cast() variable,这将导致只有基类型而没有任何const / immutable / etc.

但请注意,这会导致未定义的行为,应该避免!

另请参阅:https://dlang.org/spec/const3.html#removing_with_cast