#include <iostream>
#include <limits>
#include <type_traits>
using namespace std;
template <typename T, typename = void>
constexpr int foo[] = { 1, 2 };
template <typename T>
constexpr int foo[]<T, enable_if_t<is_floating_point<T>::value> = { 10, 20, 30 };
int main() {
cout << foo<int>[0] << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGltaXRzPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gdm9pZD4KY29uc3RleHByIGludCBmb29bXSA9IHsgMSwgMiB9OwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmNvbnN0ZXhwciBpbnQgZm9vW108VCwgZW5hYmxlX2lmX3Q8aXNfZmxvYXRpbmdfcG9pbnQ8VD46OnZhbHVlPiA9IHsgMTAsIDIwLCAzMCB9OwoKCmludCBtYWluKCkgewogIGNvdXQgPDwgZm9vPGludD5bMF0gPDwgZW5kbDsKfQ==
prog.cpp:11:20: error: expected initializer before ‘<’ token
constexpr int foo[]<T, enable_if_t<is_floating_point<T>::value> = { 10, 20, 30 };
^