に含まれるデータのストリームがありますSystem::Collections::Queue
。私のデータ ソースは同じデータを複数のストリームに出力できますが、そのためにはそれぞれのデータを複製する必要があります。現在、次のことを行っています。
void DataGatherer::AddMyDataToQueues(MyData^ data)
{
// Send duplicates to all queues
for( int i = 0; i < m_outputQueues->Count; i++ )
{
AddResultToQueue(gcnew MyData(data), (Queue^)m_outputQueues[i]);
}
}
オブジェクトを送信している限り、これは正常に機能しMyData
ます。MyOtherData
オブジェクトも送信したいとしましょう。次のようなより一般的なことを行うとよいでしょう。
void DataGatherer::AddDataToQueues(Object^ obj)
{
// Send duplicates to all queues
for( int i = 0; i < m_outputQueues->Count; i++ )
{
AddResultToQueue(gcnew Object(obj), (Queue^)m_outputQueues[i]);
}
}
...しかし、それは次の理由でコンパイルされません:
1>.\DataGatherer.cpp(72) : error C3673: 'System::Object' : class does not have a copy-constructor
では、型を知らなくてもオブジェクトを複製することは可能でしょうか? ..もしそうなら、どうすればいいですか?:)