GRAMさんの整数型見分けテンプレートを標準C++で書きなおす

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

GRAMさんの整数型見分けテンプレートを標準C++で書きなおす

投稿記事 by beatle » 13年前

GRAMさんが,与えられた整数がunsigned longの範囲か,unsigned long longの範囲かを見分けるテンプレートを書きました.GRAMさんのテンプレート萌~!よし,Boostを使わずにC++11の機能で書くか!

CODE:

#include 
#include 
#include 
#include 

template 
struct A
{
    typedef typename std::conditional std::numeric_limits::max()),
        unsigned long long,
        unsigned long>::type type;
};

void Print(unsigned long long)
{
    std::cout ::type a1 = 0;
    Print(a1);

    A::type a2 = 0;
    Print(a2);
}
ちょっとすっきり.
最後に編集したユーザー beatle on 2012年1月22日(日) 08:47 [ 編集 2 回目 ]

アバター
GRAM
記事: 164
登録日時: 15年前

Re: GRAMさんの整数型見分けテンプレートを標準C++で書きなおす

投稿記事 by GRAM » 13年前

ぼくもそうしたいのはやまやまなんですけれどね・・・
VSではmax()がconstexprじゃなかったり・・・。#defineなんて使いたくないっすよ・・・w
未だ新規格で考えられない(boost::mplライブラリから抜け出せない)GRAMです

追記:
・・・とかよく考えたら、そうですよね。わざわざisOverUintMaxなんて作らなくっても
boost::mpl::if_cを使えばいいわけで・・・あぁ・・・何をやっているんだろうw
最後に編集したユーザー GRAM on 2012年1月22日(日) 11:56 [ 編集 1 回目 ]