Как каждый включает TR1?

Для Вашего развлечения только (знающий Вас все парни C#;-).

я думаю, что это произошло в Smalltalk, где это было вокруг много лет. Это определяется там как:

в Объекте:

? anArgument
    ^ self

в UndefinedObject (иначе класс ноля):

? anArgument
    ^ anArgument

Там и оценивают (?) и не оценивают версии (??) из этого.
Это часто находится в методах получателя для лениво инициализированного, частного (экземпляр) переменные, которым оставляют ноль, пока действительно не необходимый.

28
задан bdonlan 4 August 2009 в 16:10
поделиться

6 ответов

Установить Boost на вашу машину.
Добавьте следующий каталог к ​​пути поиска.

<Каталог установки Boost> / boost / tr1 / tr1

см. Здесь boost tr1 для подробностей

Теперь, когда вы включаете , вы получаете версия памяти tr1, которая имеет std :: tr1 :: shared_ptr, а затем включает платформенно-зависимую версию , чтобы получить все обычные вкусности.

17
ответ дан 28 November 2019 в 03:30
поделиться

Возможно, лучшим способом на данный момент было бы просто использовать библиотеки boost , поскольку во многих случаях у них есть альтернативы с интерфейсом, аналогичным функциям TR1, и они просто находятся в другой (но согласованный) путь к заголовку и пространство имен. Это дает преимущество работы с компиляторами, которые даже не начали реализацию C ++ 0x. И есть множество полезных библиотек ускорения, которых нет в TR1 вообще :)

В качестве альтернативы, в G ++ вы можете попробовать передать --std = gnu ++ 0x в командной строке. Это работает, по крайней мере, для и . Затем сделать его доступным в std :: tr1:

namespace std { namespace tr1 { using namespace std; } }

Это, естественно, зло. Вместо этого я настоятельно рекомендую использовать ускоренный подход :)

4
ответ дан 28 November 2019 в 03:30
поделиться

Возможно, немного взломано, но вы могли бы просто добавить каталог компилятора tr1 в свой путь включения.

3
ответ дан 28 November 2019 в 03:30
поделиться

В Windows добавьте каталог tr1 к системному пути. Тогда #include должно работать.

2
ответ дан 28 November 2019 в 03:30
поделиться

Я спросил себя тот же вопрос. К сожалению, в техническом отчете не указано, как должны быть включены заголовки. Он только определяет, что расширения должны находиться в пространстве имен :: std :: tr1.

2
ответ дан 28 November 2019 в 03:30
поделиться
#ifdef _WIN32
    #include <unordered_map>
    #include <memory>
#else
    #include <tr1/unordered_map>
    #include <trl/memory>
#endif
13
ответ дан 28 November 2019 в 03:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: