草庐IT

static_asserts

全部标签

kotlin - 是否可以为 Java 类添加 "static"扩展功能?

例如我有Java类(来自外部库):classA{}//ThisisJavaclass我想添加在Kotlin上编写的扩展函数,并将其命名为:A.foo()//Thisiscallofextensionfunction`foo`fromKotlincode据我了解,目前在Kotlin中是不可能的,因为它支持KClass-eswithcompanionobject的“静态”扩展功能。只要。对吧?似乎没有什么可以阻止以后在Kotlin中实现这样的功能。对吧?2019-06-12更新:这个question没有回答我的问题,因为我的问题是关于Kotlin扩展函数与Java类的兼容性。

android - Kotlin Android 中 "This AsyncTask class should be static or leaks might occur"的正确方法是什么?

这里有很多关于Thisclassshouldbestaticorleaksmightoccur的问题。在javaandroid中。ThisHandlerclassshouldbestaticorleaksmightoccur:IncomingHandlerThisHandlerclassshouldbestaticorleaksmightoccur:AsyncQueryHandlerThisAsyncTaskclassshouldbestaticorleaksmightoccur(anonymousandroid.os.AsyncTask)警告是由于内部类拥有对外部类的隐式引用,因此阻

function - Kotlin:如何创建 "static"可继承函数?

例如,我想在扩展Parent的类型Child上有一个函数example()以便我可以使用该函数两者都有。Child.example()Parent.example()第一个“明显”的方法是通过Parent的伴随对象,但这不允许example()forChild.我尝试的第二种方法是在Parent.Companion上定义一个扩展函数,这很不方便,因为您必须定义一个伴随对象。它也不允许example()用于Child。有人知道我该怎么做吗? 最佳答案 你要的东西不存在,你似乎在问:CanIreferenceacompanionobje

enums - 如何在 Kotlin 中为枚举创建 "static"方法?

Kotlin已经有许多用于枚举类的“静态”方法,例如values和valueOf例如我有枚举publicenumclassCircleType{FIRSTSECONDTHIRD}如何添加静态方法,例如random():CircleType?扩展函数似乎不适用于这种情况。 最佳答案 就像任何其他类一样,您可以在枚举类中定义类对象:enumclassCircleType{FIRST,SECOND,THIRD;companionobject{funrandom():CircleType=FIRST//http://dilbert.com/

c++ - "operator = must be a non-static member"是什么意思?

我正在创建一个双链表,并重载了operator=以使列表等于另一个:templatevoidoperator=(constlist&lst){clear();copy(lst);return;}但是当我尝试编译时出现此错误:container_def.h(74):errorC2801:'operator='mustbeanon-staticmember另外,如果有帮助,第74行是定义的最后一行,带有“}”。 最佳答案 正如它所说:运算符重载必须是成员函数。(在类中声明)templatevoidlist::operator=(cons

c++ - BOOST_STATIC_ASSERT 没有 boost

由于在我工作的公司中禁止使用boost,因此我需要在纯C++中实现其功能。我已经研究了boost源,但它们似乎太复杂而无法理解,至少对我来说是这样。我知道C++0x标准中有一个名为static_assert()的东西,但我不想使用任何C++0x功能。 最佳答案 另一个技巧(可以在C中使用)是在断言失败时尝试构建一个负大小的数组:#defineASSERT(cond)intfoo[(cond)?1:-1]作为奖励,您可以使用typedef而不是对象,这样它就可以在更多的上下文中使用,并且在成功时不会发生:#defineASSERT(c

c++ - static_assert 依赖于非类型模板参数(gcc 和 clang 的不同行为)

templatestructHitchhiker{static_assert(sizeof(answer)!=sizeof(answer),"Invalidanswer");};templatestructHitchhiker{};在尝试使用static_assert禁用常规模板实例化时,我发现clang中的上述代码即使在模板未实例化时也会生成断言错误,而gcc仅在使用42以外的参数实例化Hitchhiker时才会生成断言错误。摆弄我发现这个断言:templatestructHitchhiker{static_assert(sizeof(int[answer])!=sizeof(int

c++ - static_assert 如果表达式是 constexpr

我想创建一个类模板templateclassX{//hereI'lluseT::value(amongotherthings)};T::value通常是constexpr静态变量,但并非总是如此。T::value必须是正值,所以我想在编译期间尽可能让人们知道。如果T::value总是constexpr,我会添加static_assert之类的static_assert(T::value>0,"needpositivenumber");是否可以仅在T::value为constexpr的情况下添加此static_assert? 最佳答案

c++ - 在 Release模式下是否忽略了 assert(false)?

我正在使用VC++。assert(false)在Release模式下是否被忽略? 最佳答案 如果在Release模式下编译包括定义NDEBUG,那么是的。见assert(CRT) 关于c++-在Release模式下是否忽略了assert(false)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/270488/

C++ 类型转换。 static_cast 什么时候会成功,而 reinterpret_cast 会导致问题?

我知道static_cast是从一种类型到另一种类型的转换,(直观地)是一种在某些情况下可以成功并且在没有危险转换的情况下有意义的转换。同时,reinterpret_cast是表示不安全转换的强制转换,可能会将一个值的位重新解释为另一个值的位。有人能描述一下代码编译、转换和static_cast不会导致问题,但使用reinterpret_cast会出现问题的场景吗? 最佳答案 这样就可以了:#includeusingnamespacestd;structC{intn;};structA{intn;};structB:A,C{};in