LINUX.ORG.RU

История изменений

Исправление safocl, (текущая версия) :

в общем по предварительным умозаключениям

sizeof (dependent_writer<B>)
может выполняться «лениво» в констэкспр контексте — тоесть компилятор может просто смотреть на содержание структуры (или класса) вычисляя размер, без полной инстанциации шаблонных классов, если от шаблонного аргумента не зависит как раз размер этого класса (структуры). И вроде эта ленивость unspecified (тоесть отдана на откуп компиляторам). — Если это на самом деле так (я пока не нашел четкого коментария из стандарта), то все компиляторы правы — и clang++, и g++, и даже msvc (который действует как g++).
А пока не будет инстанциирована эта dependent_writer<B> структура — не будет инстанции рована и функция adl_flag внутри структуры writer — а это значит что будет выбираться только перегрузка функции is_flag_usable с элипсисом (как и делает clang++).

Исходная версия safocl, :

в общем по предварительным умозаключениям

sizeof (dependent_writer<B>)
может выполняться «лениво» в констэкспр контексте — тоесть компилятор может просто смотреть на содержание структуры (или класса) вычисляя размер, без полной инстанциации шаблонных классов, если от шаблонного аргумента не зависит как раз размер этого класса (структуры). И вроде эта ленивость unspecified (тоесть отдана на откуп компиляторам). — Если это на самом деле так (я пока не нашел четкого коментария из стандарта), то все компиляторы правы — и clang++, и g++, и даже msvc (который действует как g++)