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.

Tags:

C++

C++14