Сообщение Re[31]: Java vs C# vs C++ от 11.10.2015 12:30
Изменено 11.10.2015 12:32 Evgeny.Panasyuk
Здравствуйте, T4r4sB, Вы писали:
EP>>GC для C++ существуют (и их применяют) как минимум с начала девяностых годов / конца восьмидесятых. В стандарте C++11 появилось специальное API для GC.
EP>>Причём реализации возможны как библиотечные, так и runtime.
TB>И как эти ГЦ делают обход указателей в структуре? По-моему, без рефлексии времени компиляции это трудновато.
Да, но есть варианты. В библиотечных GC например рефлексия на макросах (а-ля BOOST_FUSION_*), либо gc_ptr<T> в конструкторе взводит флаг в битовом массиве при создании. Runtime GC обычно консервативные.
EP>>GC для C++ существуют (и их применяют) как минимум с начала девяностых годов / конца восьмидесятых. В стандарте C++11 появилось специальное API для GC.
EP>>Причём реализации возможны как библиотечные, так и runtime.
TB>И как эти ГЦ делают обход указателей в структуре? По-моему, без рефлексии времени компиляции это трудновато.
Да, но есть варианты. В библиотечных GC например рефлексия на макросах (а-ля BOOST_FUSION_*), либо gc_ptr<T> в конструкторе взводит флаг в битовом массиве при создании. Runtime GC обычно консервативные.
Re[31]: Java vs C# vs C++
Здравствуйте, T4r4sB, Вы писали:
EP>>GC для C++ существуют (и их применяют) как минимум с начала девяностых годов / конца восьмидесятых. В стандарте C++11 появилось специальное API для GC.
EP>>Причём реализации возможны как библиотечные, так и runtime.
TB>И как эти ГЦ делают обход указателей в структуре? По-моему, без рефлексии времени компиляции это трудновато.
Да, но есть варианты. В библиотечных GC например рефлексия на макросах (а-ля BOOST_FUSION_*), либо gc_ptr<T> в конструкторе взводит флаг в битовом массиве. Runtime GC обычно консервативные.
EP>>GC для C++ существуют (и их применяют) как минимум с начала девяностых годов / конца восьмидесятых. В стандарте C++11 появилось специальное API для GC.
EP>>Причём реализации возможны как библиотечные, так и runtime.
TB>И как эти ГЦ делают обход указателей в структуре? По-моему, без рефлексии времени компиляции это трудновато.
Да, но есть варианты. В библиотечных GC например рефлексия на макросах (а-ля BOOST_FUSION_*), либо gc_ptr<T> в конструкторе взводит флаг в битовом массиве. Runtime GC обычно консервативные.