小编Mir*_*aja的帖子

C++概念占位符类型推导

在范围符合规范N4622Same概念被定义为采取两种类型TU,但有时用作内requires只有一个这样的:

{ t } -> Same<T>;
Run Code Online (Sandbox Code Playgroud)

能够扣除第二种类型的规则是什么U?(例如来自Concepts spec N4630)

最简单的类似例子是:

template <class T, class U>
concept bool C = (sizeof(T) == sizeof(U)) && (sizeof(U) != 1);

template <class T>
concept bool D = requires(T t){
  // How is U deduced here? 
  {t} -> C<T>; 
};

template <class T>
  requires D<T>
void fn() {}

int main() {
  // Fails with: unable to deduce placeholder type 'C<char>' from 't' …
Run Code Online (Sandbox Code Playgroud)

c++ c++-concepts

10
推荐指数
1
解决办法
1062
查看次数

标签 统计

c++ ×1

c++-concepts ×1