最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
[C++模板]Clang3.9使用變參模擬實(shí)現(xiàn)CheckerFn和Checker

Clang3.9使用變參模擬實(shí)現(xiàn)CheckerFn和Checker

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、滄縣ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的滄縣網(wǎng)站制作公司

一,使用變參實(shí)現(xiàn)CheckerFn

1,頭文件

/*********************************                                        
*
* Author : szyu
*
* Date : 2017.1.4
*
***********************************/

#ifndef __SZYU_CLANG__
#define __SZYU_CLANG__

#include 

/********************************
*
* clang3.9使用變參實(shí)現(xiàn)CheckerFn
*
*********************************/
template  class CheckerFn;

template 
class CheckerFn
{
private:
    typedef T (*Func)(Args...);
    Func Fn; 

public:
    CheckerFn()
    {
        std::cout << "In CheckerFn::CheckerFn()" << std::endl;
    }

    CheckerFn( Func f ) : Fn( f )
    {
        std::cout << "In CheckerFn::CheckerFn(Func f)" << std::endl;
    }

    T
    operator()( Args... args) const
    {
        Fn( args... );
    }
};


#endif

2,測試用例

/********************************                                         
*
* Author : szyu
*
* Date : 2017.1.4
*
***********************************/

#include "param.h"

void
func11()
{
    std::cout << "In func11" << std::endl;
}

void
func12( int v )
{
    std::cout << "In func12" << std::endl;
    std::cout << "Args..." << v << std::endl;
}

void
func13( int v, char ch )
{
    std::cout << "In func13" << std::endl;
    std::cout << "Args1..." << v << ", Args2..." << ch << std::endl;
}

void
test1()
{
    typedef CheckerFn CheckOne;
    CheckOne one( func11 );
    one();
    std::cout << "**********************************" << std::endl;

    typedef CheckerFn CheckTwo;
    CheckTwo two( func12 );

    int value = 7;
    two( value );
    std::cout << "**********************************" << std::endl;

    typedef CheckerFn CheckThree;
    CheckThree three( func13 );

    value = 9;
    char ch = 'B';
    three( value, ch );
}

int
main( int argc, char *argv[] )
{
    test1();

    return 0;
}

3,執(zhí)行結(jié)果

[C++模板]Clang3.9使用變參模擬實(shí)現(xiàn)CheckerFn和Checker

二,使用變參實(shí)現(xiàn)Checker

1,頭文件

/*********************************                                        
*
* Author : szyu
*
* Date : 2017.1.4
*
***********************************/

#ifndef __SZYU_CLANG__
#define __SZYU_CLANG__

#include 

/********************************
*
* clang3.9使用變參實(shí)現(xiàn)Checker
*
*********************************/
class Register1
{
public:
    static void
    _register()
    {   
        std::cout << "In Register1::_register()" << std::endl;
    }   
};

class Register2
{
public:
    static void
    _register()
    {
        std::cout << "In Register2::_register()" << std::endl;
    }
};

class Register3
{
public:
    static void
    _register()
    {
        std::cout << "In Register3::_register()" << std::endl;
    }
};

template 
class Checker : public T1, public Args...
{
public:
    static void
    _register()
    {
        std::cout << "In Checker::_register()" << std::endl;
        T1::_register();
        Checker::_register();
    }
};

template 
class Checker
{
public:
    static void
    _register()
    {
        std::cout << "In Checker::_register()" << std::endl;
        T1::_register();
    }
};

#endif

2,測試用例

/*********************************                                        
*
* Author : szyu
*
* Date : 2017.1.4
*
***********************************/

#include "param2.h"

void
test1()
{
    Checker::_register();
    std::cout << "**********************************" << std::endl;
    Checker::_register();
    std::cout << "**********************************" << std::endl;
    Checker::_register();
}

int
main( int argc, char *argv[] )
{
    test1();

    return 0;
}

3,執(zhí)行結(jié)果

[C++模板]Clang3.9使用變參模擬實(shí)現(xiàn)CheckerFn和Checker


當(dāng)前文章:[C++模板]Clang3.9使用變參模擬實(shí)現(xiàn)CheckerFn和Checker
文章鏈接:http://fisionsoft.com.cn/article/jiiips.html