#include <iostream>
using namespace std;

struct customType {
	int b;
	};
struct Instruction {};

class BasicBlock {
public:

 BasicBlock(int a) { InstList.b = a; }
 customType InstList;

  static customType BasicBlock::*getSublistAccess(Instruction*) {
    return &BasicBlock::InstList;
  }
};

int main() {
	
	BasicBlock bb(90);
	
	Instruction justForSignature;
	// Get a pointer to a member of type customType through the static function
	customType BasicBlock::* ptrToMember = BasicBlock::getSublistAccess(&justForSignature);
	
	cout << (bb.*ptrToMember).b; // Parenthesis are necessary, '.' has higher precedence on *
	// Output: 90
	
	return 0;
}