#include <iostream>
static constexpr bool isSSE2 = false;
template<typename T>
static void (*fp)() = nullptr;
template<typename T>
static void foo_c() {
std::cout << "foo_c get called." << std::endl;
}
template<typename T>
static void foo_sse2() {
std::cout << "foo_sse2 get called." << std::endl;
}
int main() {
if (isSSE2)
fp<int> = foo_sse2<int>;
else
fp<int> = foo_c<int>;
fp<int>();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RhdGljIGNvbnN0ZXhwciBib29sIGlzU1NFMiA9IGZhbHNlOwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RhdGljIHZvaWQgKCpmcCkoKSA9IG51bGxwdHI7Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpzdGF0aWMgdm9pZCBmb29fYygpIHsKICAgIHN0ZDo6Y291dCA8PCAiZm9vX2MgZ2V0IGNhbGxlZC4iIDw8IHN0ZDo6ZW5kbDsKfQoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RhdGljIHZvaWQgZm9vX3NzZTIoKSB7CiAgICBzdGQ6OmNvdXQgPDwgImZvb19zc2UyIGdldCBjYWxsZWQuIiA8PCBzdGQ6OmVuZGw7Cn0KCmludCBtYWluKCkgewogICAgaWYgKGlzU1NFMikKICAgICAgICBmcDxpbnQ+ID0gZm9vX3NzZTI8aW50PjsKICAgIGVsc2UKICAgICAgICBmcDxpbnQ+ID0gZm9vX2M8aW50PjsKCiAgICBmcDxpbnQ+KCk7CgogICAgcmV0dXJuIDA7Cn0=