How to make a tuple of const references?

前端 未结 1 1376
深忆病人
深忆病人 2021-02-07 14:28

Say there are two functions:

void ff( const std::tuple ) { }

template < typename TT >
void gg( const std::tuple         


        
1条回答
  •  粉色の甜心
    2021-02-07 14:46

    The first question is if this fits with the C++11 standard, and if it doesn't, then why?

    This is expected behaviour. In the second case template argument deduction fails because there is no T so that tuple becomes tuple.

    In the first case it works because tuple is implicitly convertible to tuple. This is a user-defined conversion and as such not considered during template argument deduction.

    Your questions smells a bit like an X/Y problem. Consider posting the real question that made you look for a solution involving this kind of function template/tuple combination.

    Your ctie function template looks fine. But keep in mind that things like

    auto t = ctie(5);
    

    will basically produce a dangling reference. So, you might want to restrict ctie to lvalues only.

    0 讨论(0)
提交回复
热议问题