Lets consider the following code (compiles successfully with clang++ 7.0.0, compiler arguments are -std=c++17 -Wall -Wextra -Werror -pedantic-errors
):
I understand that this question is for advanced scenari and is asking if the code is compliant with the standard but let's take a step back here for a second:
Operator conversion is design to define "static-cast-like" operation. It doesn't really make sense to make a static cast depend on another templated type