Detect dangling references to temporary

后端 未结 3 1115
一个人的身影
一个人的身影 2020-12-15 05:46

Clang 3.9 extremely reuses memory used by temporaries.

This code is UB (simplified code):

template 
class my_optional
{
public:
    bo         


        
3条回答
  •  孤街浪徒
    2020-12-15 06:36

    You could try out lvalue_ref wrapper from Explicit library. It prevents the unwanted binding to a temporary in one declaration, like:

    const T& get_or_default(lvalue_ref def)
    {
        return has ? value : def.get();
    }
    

提交回复
热议问题