C++相談室 part129 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0199191 (ワッチョイ 6f56-3qL8)
2017/01/22(日) 08:50:18.71ID:rrJzCAZR0下の様に、sizeof, decltype を移動させたら、あっさり動きました。失礼しました。
template <typename STR>
struct helper
{
enum {
item_size = sizeof(decltype(STR()[0])),
};
};
extern void* enabler;
// 1バイト版
template <typename STR, typename std::enable_if<helper<STR>::item_size == 1>::type *& = enabler>
void hoge(const STR&)
{
}
// 2バイト版
template <typename STR, typename std::enable_if<helper<STR>::item_size == 2>::type *& = enabler>
void hoge(const STR&)
{
}
void main() {
std::string a;
hoge(a); // 1バイト版
std::wstring w;
hoge(w); // 2バイト版
}
■ このスレッドは過去ログ倉庫に格納されています