Нет никакого способа сказать sprintf()
не писать запаздывающий пустой указатель. То, что можно сделать, использовать sprintf()
для записи во временную строку, и затем что-то как strncpy()
для копирования только байтов, которые Вы хотите.
Вы можете получить информацию о modopt
и modreq
из System.Reflection
, вызвав ParameterInfo :: GetOptionalCustomModifiers ( )
и ParameterInfo :: GetRequiredCustomModifiers ()
соответственно. Чтобы проиллюстрировать ваши типы, см. Следующее:
class ClassA;
template<typename _Type> class ClassTempA;
public interface class Test : BaseFunc {
public:
ClassTempA<int>& SomeFunc2(ClassA inst) = 0;
};
array<Type^>^ GetModifiers()
{
MethodInfo^ SomeFunc2 = Test::typeid->GetMethod("SomeFunc2");
return method->ReturnParameter->GetOptionalCustomModifiers();
}