小编use*_*855的帖子

在函数调用中,为什么nullptr不匹配指向模板对象的指针?

以下是一个完美运行的代码示例:


#include<iostream>
#include<vector>

template< class D, template< class D, class A > class C, class A = std::allocator< D > >
void foo( C< D, A > *bar, C< D, A > *bas ) {
  std::cout << "Ok!" << std::endl;
}

int main( ) {
  std::vector< int > *sample1 = nullptr;
  std::vector< int > *sample2 = nullptr;
  foo( sample1, sample2 );
  return( 0 );
}
Run Code Online (Sandbox Code Playgroud)

但是,在下面的代码中,编译器无法将std :: vector <int>*与nullptr匹配为第二个参数,甚至能够从第一个参数中扣除模板类型.


#include<iostream>
#include<vector>

template< class D, template< class D, class A > …
Run Code Online (Sandbox Code Playgroud)

c++ function-call nullptr template-matching c++11

9
推荐指数
2
解决办法
5123
查看次数

标签 统计

c++ ×1

c++11 ×1

function-call ×1

nullptr ×1

template-matching ×1