それってありかよーなC#3.0拡張メソッド:
using System.Collections.Generic;
using System.IO;
namespace Wankuma.Util {
public static class ExtensionMethods {
public static void printAll<T>(this IEnumerable<T> en, TextWriter w) {
foreach ( T item in en ) w.WriteLine(item);
}
}
}
こんなの書いとけば IEnumerable<T> なもの、
たとえば List<int> il に対して
il.printAll(Console.Out); なんてやれます。
さてこの拡張メソッドをアセンブリに仕立て、C++/CLIから呼べるんか?
using namespace System;
using namespace System::Collections::Generic;
using namespace Wankuma::Util;
int main() {
List<int> il;
il.Add(1); il.Add(2); il.Add(3);
ExtensionMethods::printAll(%il, Console::Out);
return 0;
}
ははん、C++/CLIにはフツーのstaticメソッドに見えてるですなりね。
# il.printfAll(Console::Out) はペケでした。