typedef
以下に相当するものはありますか:
#define HashTabOf(i) htab[i]
と
#define MAXCODE(n_bits) (((code_int) 1 << (n_bits)) - 1)
?
このコードは、C から C++ に移植中です。
typedef
以下に相当するものはありますか:
#define HashTabOf(i) htab[i]
と
#define MAXCODE(n_bits) (((code_int) 1 << (n_bits)) - 1)
?
このコードは、C から C++ に移植中です。
typedef ではありませんが、C++ の方法は次のとおりです。
template <typename T>
inline T &HashTabOf(size_t i)
{
return htab[i];
}
と
inline size_t MAXCODE(size_t n_bits)
{
return (1 << n_bits) - 1;
}
@Dani のテンプレート ソリューションを次のように実装します。
inline auto & HashTabOf(size_t i) -> decltype(htab[0])
{
return htab[i];
}
C++11 でのみ有効です。C++11 で導入された、trailing-return-typeと呼ばれる機能を使用します。
このソリューションの良い点は、もはやテンプレートではないということです。T
使用するときに言及する必要はありませんが、@Daniのソリューションでは言及する必要がありT
ます。
auto item = HashTabOf<Type>(4); //Dani's solution
auto item = HashTabOf(4); //My solution
そして、はい、これを簡単に書くことができます:
inline int & HashofTable(size_t i)
{
return htab[i];
}
htab[i]
また、直接使用しないのはなぜですか?