Что произойдет с пространством имен tr1, когда c ++ xx будет одобрен? - PullRequest
9 голосов
/ 05 января 2010

Я пишу некоторые вещи, используя пространство имен tr1 в VS2008. Что произойдет, когда C ++ xx станет ратифицированным? Случалось ли это раньше с другими ревизиями C ++? Будет ли работать tr1, или мне придется изменить все мои включения? Я понимаю, что делаю очень большое предположение, что эта ратификация когда-нибудь произойдет. Я знаю, что, скорее всего, никто из вас не работает на MS и не участвует в GCC, но если у вас есть опыт подобных изменений, я был бы признателен за совет.

Ответы [ 3 ]

10 голосов
/ 05 января 2010

std :: tr1 станет частью std в C ++ 1x (std :: tr1 :: shared_ptr становится std :: shared_ptr и т. Д.). std :: tr1 будет продолжать существовать до тех пор, пока этот компилятор заявляет о реализации TR1. В какой-то момент ваш компилятор может отбросить это утверждение и в результате отбросить std :: tr1. Это, вероятно, никогда не произойдет.

std :: tr1 уже "скопирован" в пространство имен std в Visual Studio 2010 Beta (с помощью директивы using)

6 голосов
/ 05 января 2010

Запись в Википедии для C ++ 0x гласит: «Большая часть новых библиотек определена в документе Технический отчет Библиотеки комитета по стандартам C ++ (называемый TR1), который был опубликован в 2005 году. и частичные реализации TR1 в настоящее время доступны с использованием пространства имен std :: tr1. Для C ++ 0x они будут перемещены в пространство имен std. Однако, поскольку функции TR1 перенесены в стандартную библиотеку C ++ 0x при необходимости они обновляются с помощью функций языка C ++ 0x, которые не были доступны в начальной версии TR1, а также могут быть расширены функциями, которые были возможны в C ++ 03, но не были частью исходной спецификации TR1. «

2 голосов
/ 05 января 2010

tr1 не является частью какого-либо стандарта (это сокращенное название, которое никогда не принималось) - это просто соглашение, которое предоставляют некоторые компиляторы. Они почти наверняка будут продолжать предоставлять его в будущем.

...