Does std::integral_constant<T, v>::value always have a definition?
This is covered by a blanket declaration in [contents]/1 that defines the general rules for standard library implementations:
The C++ standard library provides definitions for the following types of entities: macros, values, types, templates, classes, functions, objects.
Variables of non-reference types are objects, so value
here is an object. Therefore, the standard library must provide a definition for it.
The C++17 version of this statement is more direct on this matter:
The C++ standard library provides definitions for the entities and macros described in the synopses of the C++ standard library headers.
value
is most assuredly an entity, which is described in the synopsis of a C++ standard library header. Therefore, a definition must be provided.