Разница между sizeof(void) и sizeof(void|) в C++ заключается в том, что тип void не имеет определённого размера, а тип void| имеет конкретный размер в байтах. stackoverflow.com dzen.ru
Тип void означает «пустота» и не имеет типа. dzen.ru intuit.ru Если попробовать вычислить его размер с помощью оператора sizeof, программа не будет компилироваться. dzen.ru
Тип void|* используется для описания указателя общего типа, когда заранее не известна информация о типе объекта, на который он будет ссылаться. intuit.ru Например, в 32-битной архитектуре sizeof(void|*) равен 4 байтам. stackoverflow.com