How to force class template argument deduction when constructing a class in its own member functions?

折月煮酒 提交于 2019-12-01 03:10:49

You qualify it so that it's not the injected-class-name.

auto foo() {return ::B(A{});}

Another option is to use a function to do the type deduction for you.

template <typename T> B<T> make_b(T t) { return B<T>(t); }

and use

auto foo() {return make_b(A{});} 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!