function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
Это действительно не связано с CRTP, а скорее с тем фактом, что для зависимого от базового доступа производного кода вам нужно квалифицировать вещи.
Изменение строки на
std::cout<<this->protectedData<<std::endl;
разрешило ее.
См. , обращаясь к члену базового класса в производном классе .