<Описание вашей идеи>
Есть проблема - что сложно делать несколько реализаций (напирмер под sse-vs-avx) одной и той же функции.
Было бы здорово уметь сказать комплияторо-линковщику:
есть определяемая на старте функция
вот список реализаций
вот эта функция на старте (либо лениво?) выберет конечную реализацию
Главное что хочется - чтобы вызывающий код вызывал фиксированный символ, а указатель туда бы подставился прозрачно. Цель - минимизация расходов на runtim-cpu-dispatching
Заодно это поднимает вопрос чтобы в стандарте появились какие-нибудь std::cpu::have_avx512() а так constexpr варианты, а также функции или макросы std::cpu::can_have_avx512() (означает что запуск возможен на платформе с этим флагом), при std::cpu::can_have_avx512() == false гарантируется что ни один translation-unit не будет собран с -mavx512
<Примеры, где ваша идея будет полезна. Чем больше примеров и чем большую аудиторию они охватывают - тем лучше>
Везде будет полезна
<Описание вашей идеи> Есть проблема - что сложно делать несколько реализаций (напирмер под sse-vs-avx) одной и той же функции. Было бы здорово уметь сказать комплияторо-линковщику:
Главное что хочется - чтобы вызывающий код вызывал фиксированный символ, а указатель туда бы подставился прозрачно. Цель - минимизация расходов на runtim-cpu-dispatching
Заодно это поднимает вопрос чтобы в стандарте появились какие-нибудь std::cpu::have_avx512() а так constexpr варианты, а также функции или макросы std::cpu::can_have_avx512() (означает что запуск возможен на платформе с этим флагом), при std::cpu::can_have_avx512() == false гарантируется что ни один translation-unit не будет собран с -mavx512
<Примеры, где ваша идея будет полезна. Чем больше примеров и чем большую аудиторию они охватывают - тем лучше> Везде будет полезна
<Код c реализацией вашей идеи, если есть>
Полезные ссылки: