template<typename TCallable>
void Fun(TCallable c){
...
}
Run Code Online (Sandbox Code Playgroud)
如何c在int(double, double)不使用std :: function的情况下指示前面的代码中必须有一些特定的签名(比方说)?
这不能按预期工作:
template<typename T>
struct PHI {
enum : T { value = 11400714819323198485 >> (64 - sizeof(T) * 8) };
};
std::cout << PHI<unsigned long long>::value;
Run Code Online (Sandbox Code Playgroud)
输出是2135587861.我的期望是什么11400714819323198485.(在VS2013中)
我想如果需要PHI<unsigned long long>::value可以隐式转换为类型unsigned long long.但它实际上转换为unsigned.这意味着当我在其他地方使用它时,它也可能转换为unsigned.那不是我想要的.
c++ ×2