Во-первых, это только маленький пример; Вы уверены, что компилятор может разумно сказать вам, что не так для более сложного кода? Для любого куска кода? Могут ли все компиляторы разумно распознавать это одинаково, чтобы кусок кода C ++ мог быть гарантированно переносимым с пропущенными точками с запятой?
Во-вторых, C ++ был создан более десяти лет назад, когда вычислительные ресурсы - не то, что нужно. они сейчас. Даже сегодня сборка может занять значительное время. Точки с запятой помогают четко разграничить различные команды (для пользователя и для компилятора!) И помогают как программисту, так и компилятору понять, что происходит.
Я чувствую, что самый простой путь состоит в том, чтобы переопределить существующую cmp_lt функцию heapq модуля. Короткий пример:
import heapq
# your custom function. Here, comparing tuples a and b based on their 2nd element
def new_cmp_lt(self,a,b):
return a[1]<b[1]
#override the existing "cmp_lt" module function with your function
heapq.cmp_lt=new_cmp_lt
#Now use everything like normally used