Что обозначает такая запись? поставило в тупик, применением "::" несколько раз.
typename FGameMenuItem::FOnOptionChanged::TSPMethodDelegate< UserClass >::FMethodPtr InMethod
Данный оператор :: называется Оператор разрешения области видимости. В случае наличия вложенных классов class/struct и/или пространств имён namespace с его помощью обеспечивается доступ к нужному имени. Например:
namespace N
{
struct C
{
struct D
{
static int i;
};
};
}
Для доступа из глобального пространства имён к статической переменной i нужно написать N::C::D::i.
Подробнее об операторе разрешения области видимости есть на MSDN.
Наличие же typename вначале говорит о том, что зависимое от шаблона имя является типом, а не переменной.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей