Functions changes summary: 1 Removed, 11 Changed, 0 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

1 Removed function:

  [D] 'method void std::_Tuple_impl<1ul>::_Tuple_impl()'

11 functions with some indirect sub-type change:

  [C] 'method STR::~STR(int)' has some indirect sub-type changes:
    linkage names of method STR::~STR(int)
    changed from '_ZN3STRD1Ev, _ZN3STRD2Ev' to '_ZN3STRD2Ev'

    name of symbol changed from _ZN3STRD1Ev to _ZN3STRD2Ev
    parameter 1 of type 'int' was removed

  [C] 'function std::tuple<STR&&> my_forward_as_tuple<STR>(STR&&)' has some indirect sub-type changes:
    return type changed:
      type name changed from 'std::tuple<STR&&>' to 'std::tuple<STR &&>'
      type size hasn't changed
      1 base class deletion:
        struct std::_Tuple_impl<0ul, STR&&>
      1 base class insertion:
        struct std::_Tuple_impl<0, STR &&>

  [C] 'method void std::_Head_base<0ul, STR&&, false>::_Head_base<STR>(STR&&)' has some indirect sub-type changes:
    'method void std::_Head_base<0ul, STR&&, false>::_Head_base<STR>(STR&&) {_ZNSt10_Head_baseILm0EO3STRLb0EEC2IS0_St9true_typeEEOT_}' now becomes 'method void std::_Head_base<0, STR &&, false>::_Head_base<STR, std::true_type>(STR&&) {_ZNSt10_Head_baseILm0EO3STRLb0EEC2IS0_St9true_typeEEOT_}'
    implicit parameter 0 of type 'std::_Head_base<0ul, STR&&, false>*' changed:
      in pointed to type 'struct std::_Head_base<0ul, STR&&, false>':
        type name changed from 'std::_Head_base<0ul, STR&&, false>' to 'std::_Head_base<0, STR &&, false>'
        type size hasn't changed
        1 data member change:
          name of 'std::_Head_base<0ul, STR&&, false>::_M_head_impl' changed to 'std::_Head_base<0, STR &&, false>::_M_head_impl'

  [C] 'method STR& std::_Head_base<0ul, STR&&, false>::_M_head()' has some indirect sub-type changes:
    'method STR& std::_Head_base<0ul, STR&&, false>::_M_head() {_ZNSt10_Head_baseILm0EO3STRLb0EE7_M_headERKS2_}' now becomes 'method STR& std::_Head_base<0, STR &&, false>::_M_head() {_ZNSt10_Head_baseILm0EO3STRLb0EE7_M_headERKS2_}'
    parameter 1 of type 'const std::_Head_base<0ul, STR&&, false>&' changed:
      in referenced type 'const std::_Head_base<0ul, STR&&, false>':
        'const std::_Head_base<0ul, STR&&, false>' changed to 'const std::_Head_base<0, STR &&, false>'

  [C] 'method STR& std::_Tuple_impl<0ul, STR&&>::_M_head()' has some indirect sub-type changes:
    'method STR& std::_Tuple_impl<0ul, STR&&>::_M_head() {_ZNSt11_Tuple_implILm0EJO3STREE7_M_headERKS2_}' now becomes 'method STR& std::_Tuple_impl<0, STR &&>::_M_head() {_ZNSt11_Tuple_implILm0EJO3STREE7_M_headERKS2_}'
    parameter 1 of type 'const std::_Tuple_impl<0ul, STR&&>&' changed:
      in referenced type 'const std::_Tuple_impl<0ul, STR&&>':
        'const std::_Tuple_impl<0ul, STR&&>' changed to 'const std::_Tuple_impl<0, STR &&>'

  [C] 'method void std::_Tuple_impl<0ul, STR&&>::_Tuple_impl<STR>(STR&&)' has some indirect sub-type changes:
    Please note that the symbol of this function is _ZNSt11_Tuple_implILm0EJO3STREEC2IS0_JESt10false_typeEEOT_DpOT0_
     and it aliases symbol: _ZNSt11_Tuple_implILm0EJO3STREEC1IS0_JESt10false_typeEEOT_DpOT0_
    linkage names of method void std::_Tuple_impl<0ul, STR&&>::_Tuple_impl<STR>(STR&&)
    changed from '_ZNSt11_Tuple_implILm0EJO3STREEC2IS0_JESt10false_typeEEOT_DpOT0_, _ZNSt11_Tuple_implILm0EJO3STREEC1IS0_JESt10false_typeEEOT_DpOT0_' to '_ZNSt11_Tuple_implILm0EJO3STREEC2IS0_JESt10false_typeEEOT_DpOT0_'
    'method void std::_Tuple_impl<0ul, STR&&>::_Tuple_impl<STR>(STR&&) {_ZNSt11_Tuple_implILm0EJO3STREEC2IS0_JESt10false_typeEEOT_DpOT0_, _ZNSt11_Tuple_implILm0EJO3STREEC1IS0_JESt10false_typeEEOT_DpOT0_}' now becomes 'method void std::_Tuple_impl<0, STR &&>::_Tuple_impl<STR, std::false_type>(STR&&) {_ZNSt11_Tuple_implILm0EJO3STREEC2IS0_JESt10false_typeEEOT_DpOT0_}'
    implicit parameter 0 of type 'std::_Tuple_impl<0ul, STR&&>*' changed:
      in pointed to type 'struct std::_Tuple_impl<0ul, STR&&>':
        type name changed from 'std::_Tuple_impl<0ul, STR&&>' to 'std::_Tuple_impl<0, STR &&>'
        type size hasn't changed
        2 base class deletions:
          struct std::_Head_base<0ul, STR&&, false>
          struct std::_Tuple_impl<1ul>
        2 base class insertions:
          struct std::_Head_base<0, STR &&, false>
          struct std::_Tuple_impl<1>

  [C] 'function std::__add_c_ref<STR&&>::type std::__get_helper<0ul, STR&&>(const std::_Tuple_impl<0ul, STR&&>&)' has some indirect sub-type changes:
    'function std::__add_c_ref<STR&&>::type std::__get_helper<0ul, STR&&>(const std::_Tuple_impl<0ul, STR&&>&) {_ZSt12__get_helperILm0EO3STRJEENSt11__add_c_refIT0_E4typeERKSt11_Tuple_implIXT_EJS3_DpT1_EE}' now becomes 'function std::__add_c_ref<STR &&>::type std::__get_helper<0, STR &&>(const std::_Tuple_impl<0, STR &&>&) {_ZSt12__get_helperILm0EO3STRJEENSt11__add_c_refIT0_E4typeERKSt11_Tuple_implIXT_EJS3_DpT1_EE}'
    return type changed:
      typedef name changed from std::__add_c_ref<STR&&>::type to std::__add_c_ref<STR &&>::type
    parameter 1 of type 'const std::_Tuple_impl<0ul, STR&&>&' changed:
      in referenced type 'const std::_Tuple_impl<0ul, STR&&>':
        'const std::_Tuple_impl<0ul, STR&&>' changed to 'const std::_Tuple_impl<0, STR &&>'

  [C] 'function std::__add_c_ref<STR&&>::type std::get<0ul, STR&&>(const std::tuple<STR&&>&)' has some indirect sub-type changes:
    'function std::__add_c_ref<STR&&>::type std::get<0ul, STR&&>(const std::tuple<STR&&>&) {_ZSt3getILm0EJO3STREENSt11__add_c_refINSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeEE4typeERKS7_}' now becomes 'function std::__add_c_ref<STR &&>::type std::get<0, STR &&>(const std::tuple<STR &&>&) {_ZSt3getILm0EJO3STREENSt11__add_c_refINSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeEE4typeERKS7_}'
    return type changed:
      typedef name changed from std::__add_c_ref<STR&&>::type to std::__add_c_ref<STR &&>::type
    parameter 1 of type 'const std::tuple<STR&&>&' changed:
      in referenced type 'const std::tuple<STR&&>':
        'const std::tuple<STR&&>' changed to 'const std::tuple<STR &&>'

  [C] 'function std::remove_reference<STR&>::type&& std::move<STR&>(STR&)' has some indirect sub-type changes:
    'function std::remove_reference<STR&>::type&& std::move<STR&>(STR&) {_ZSt4moveIR3STREONSt16remove_referenceIT_E4typeEOS3_}' now becomes 'function std::remove_reference<STR &>::type&& std::move<STR &>(STR&) {_ZSt4moveIR3STREONSt16remove_referenceIT_E4typeEOS3_}'
    return type changed:
      in referenced type 'typedef std::remove_reference<STR&>::type':
        typedef name changed from std::remove_reference<STR&>::type to std::remove_reference<STR &>::type

  [C] 'method void std::tuple<STR&&>::tuple<STR>(STR&&)' has some indirect sub-type changes:
    Please note that the symbol of this function is _ZNSt5tupleIJO3STREEC2IJS0_ESt9true_typeEEDpOT_
     and it aliases symbol: _ZNSt5tupleIJO3STREEC1IJS0_ESt9true_typeEEDpOT_
    linkage names of method void std::tuple<STR&&>::tuple<STR>(STR&&)
    changed from '_ZNSt5tupleIJO3STREEC2IJS0_ESt9true_typeEEDpOT_, _ZNSt5tupleIJO3STREEC1IJS0_ESt9true_typeEEDpOT_' to '_ZNSt5tupleIJO3STREEC2IJS0_ESt9true_typeEEDpOT_'
    'method void std::tuple<STR&&>::tuple<STR>(STR&&) {_ZNSt5tupleIJO3STREEC2IJS0_ESt9true_typeEEDpOT_, _ZNSt5tupleIJO3STREEC1IJS0_ESt9true_typeEEDpOT_}' now becomes 'method void std::tuple<STR &&>::tuple<STR, std::true_type>(STR&&) {_ZNSt5tupleIJO3STREEC2IJS0_ESt9true_typeEEDpOT_}'
    implicit parameter 0 of type 'std::tuple<STR&&>*' changed:
      pointed to type 'class std::tuple<STR&&>' changed, as reported earlier

  [C] 'function void tpl<std::tuple<STR&&> >(std::tuple<STR&&>)' has some indirect sub-type changes:
    'function void tpl<std::tuple<STR&&> >(std::tuple<STR&&>) {_Z3tplISt5tupleIJO3STREEEvT_}' now becomes 'function void tpl<std::tuple<STR &&> >(std::tuple<STR &&>) {_Z3tplISt5tupleIJO3STREEEvT_}'
    parameter 1 of type 'class std::tuple<STR&&>' changed:
      details were reported earlier

