Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 传递给共享库(c+;+;)的模板函数_C++_Function_Templates_Shared - Fatal编程技术网

C++ 传递给共享库(c+;+;)的模板函数

C++ 传递给共享库(c+;+;)的模板函数,c++,function,templates,shared,C++,Function,Templates,Shared,一个小小的思想实验。。。成分1:(预编译)共享库中的一个类,该库具有一个函数,该函数获取指向从ostream派生的对象的指针: void ClassName::SetDefaultStream(std::ostream *stream) 成分2: 我自己的类派生自std::ostream,带有一些通用模板流操作符: class MyStream : public std::ostream { public: template <typename T> MyStre

一个小小的思想实验。。。成分1:(预编译)共享库中的一个类,该库具有一个函数,该函数获取指向从ostream派生的对象的指针:

void ClassName::SetDefaultStream(std::ostream *stream)
成分2:

我自己的类派生自std::ostream,带有一些通用模板流操作符:

class MyStream : public std::ostream
{
   public:
      template <typename T> MyStream &operator<<(const T &data)
      {
         std::cout << data;
         return *this;
      }
}
classmystream:public std::ostream
{
公众:

模板MyStream&operator您的模板成员在库中不可见,因为它不是基本std::ostream的虚拟成员。不会发生任何问题。

它将编译,但不会调用您的操作符