C++でTCP/IPソケットを超簡単に扱うサンプルコード(静的ポリモーフィズム)

2020/04/06

C/C++ 技術

t f B! P L


さて、前回は動的ポリモーフィズムで組みました。

今回はすごーーーーーーく冗長ですが、静的ポリモーフィズムです。

ソースコード






以上です。

前回との違い


    template< class T_interface >
    class TCPIPInterfaceClass
    {
        public:

        void create_connection()
        { static_cast< T_interface& >(this)->create_connection(); }

        void wait_for_incomming()
        { 
            static_cast< T_interface& >(this)->wait_for_incomming();
            return;
        }

        void read_data( char* read_buffer, size_t buffer_length )
        { 
            static_cast< T_interface& >(this)->read_data(read_buffer, buffer_length);
        }

        void write_data( const char* write_data, size_t data_length )
        {
            static_cast< T_interface& >(this)->write_data(write_data, data_length); 
        }        
    };

静的ポリモーフィズムを使用して、インターフェースを定義しています。

それだけです(-_-;)

2020/04/09追記ーーーーーーーーーーーーーーーー
すみません、これと前の記事今の私の実力で考えたものではなく、7年前の自分のEvernoteメモの焼き直しです。

私が盛んに勉強していた時代には参考書籍には乗ってなかったような気がしますが、
これCRTPと言うらしいです。

個人的にvirtual以上の性能追及したいなーって思った工夫だったのですが、やはり先人たちの実力って想像つかない神のレベルだと実感しました。

さいごに

いや、最後にっていうほど書いていないんですが、動的ポリモーフィズムを使用したインターフェースの定義よりコンパイラのメッセージも不親切だけど、こっちの方が早いよ、という例です。

この例がC++言語の学習の助けになればいいと思います。

Translate

ページビューの合計

注意書き

基本的にごった煮ブログですので、カテゴリから記事を参照していただけると読みやすいかと存じます。

ADBlocker等を使用していると、Twitterやアクセスカウンタが表示されません。

記事を読むには差し支えませんが、情報を参照したい場合には一時例外にしていただけると全てご参照いただけます。

Featured Post

ボイドラDICEの攻略法

QooQ