C++テンプレート別名typedef代替案
1077 ワード
by [csdn]@plainsong——
使用時:[typename]Func::元のFuncの代わりにresultを使用
vc7.01のコンパイル結果は遅く、Bcc 32 5.6よりも遅く、正しい設定方法が見つからなかったかもしれません.VC7.01の標準的なサポートはまだよくありませんが、よく使われるテクニックはすべて使えます.まだexportテンプレートbcc 32 5.6はサポートされていないようです.4対5.6はあまり改善されていないので、Bugを少し補充しました.李維氏によると、新版のBCBXのコンパイラは標準サポートとコンパイル最適化の面で大きく改善され、C 99もサポートされる(これは珍しい)という.いつ出るか分からない.
by [cppblog]@Cpper——
typedefのテンプレートが必要になる場合がありますが、c++には直接的な解決策がありません.つまり、これは不可能です.typedef std::vector myvector;間接的な解決策は、(このコードはゲモゲームエンジンコードに由来する)
使うときはこんな感じ
list_typedef::type v;
list_typedef::typedef veclist;
list_typedef::type veclist;
...
template
struct Func
{
typedef T (*result)(T n);
};
使用時:[typename]Func::元のFuncの代わりにresultを使用
vc7.01のコンパイル結果は遅く、Bcc 32 5.6よりも遅く、正しい設定方法が見つからなかったかもしれません.VC7.01の標準的なサポートはまだよくありませんが、よく使われるテクニックはすべて使えます.まだexportテンプレートbcc 32 5.6はサポートされていないようです.4対5.6はあまり改善されていないので、Bugを少し補充しました.李維氏によると、新版のBCBXのコンパイラは標準サポートとコンパイル最適化の面で大きく改善され、C 99もサポートされる(これは珍しい)という.いつ出るか分からない.
by [cppblog]@Cpper——
typedefのテンプレートが必要になる場合がありますが、c++には直接的な解決策がありません.つまり、これは不可能です.typedef std::vector myvector;間接的な解決策は、(このコードはゲモゲームエンジンコードに由来する)
#include
typedef flex_string engine_string;
#include
template
struct vector_typedef
{
typedef yasli::vector > type;
};
template
struct list_typedef
{
typedef yasli::vector > type;
};
使うときはこんな感じ
list_typedef::type v;
list_typedef::typedef veclist;
list_typedef::type veclist;
...