FDIS (n3290) в Приложении C, «Совместимость», C.2.7 гласит:
17.6.3.2
Влияние на исходную функцию: своп функции перемещен вРазличный заголовок
Обоснование: Удалить зависимость от для подкачки.
Влияние на исходную функцию: допустимый код C ++ 2003, который был скомпилирован, ожидая, что подкачка будет в , может потребоваться вместо этогоinclude .
Так что нет, компиляция не гарантируется, это намеренно серьезное изменение.Будут ли отдельные реализации нарушать код C ++ 03 - другой вопрос.Как вы указали, для них достаточно просто не определять, определяя swap
через любой заголовок.Но есть выбор между упрощением переноса кода C ++ 03 на C ++ 0x и помогением людям писать строго соответствующий C ++ 0x.