cplusplus / cplusplus/draft

[temp.deduct.type] p6 type name includes non-deduced context

Open
#4,878 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TeX
Stars
221
Forks
813
Avg merge
16h 4m
Merged PRs (30d)
36

Description

[temp.deduct.type] p6 says

When a type name is specified in a way that includes a non-deduced context, all of the types that comprise that type name are also non-deduced. However, a compound type can include both deduced and non-deduced types.

Consider this example

template<class  U ,class T>
struct A{
    A(T){}
};
template<class U>
struct unknow_content{
    using type = U;
};

template<class U, class T>
void fun(A<U, typename unknow_content<T>::type>, T,U){}

int main(){
   fun(0,0,0);  // ill-formed
}

the type name A<U, typename unknow_content<T>::type> includes a non-deduced context typename unknow_content<T>::type, hence the U that comprises the type name A<U, typename unknow_content<T>::type> is also non-deduced?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with [temp.deduct.type] p6 and the supplied deduction example, then compare the wording about non-deduced contexts with the intended deduction behavior. Done means resolving whether U is non-deduced and recording an agreed standard-wording change or clarification.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.