MSVC does not support VLA

Change-Id: I46654d81b99051f764d829a262a14f8f0c5f536b
ifdef linux only code

Change-Id: I56b13dee13373d7fc24efa37680e9010a73f4d04
implement abstract virtual methods in windows classes

Change-Id: Ifd34cdab725c2d8f2417585b1b90c79cfa977bd1