y‰SŽÒнŒ}zC/C++Ž ..
[2ch|¥Menu]
103:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/09/30 14:32:36
svn‚Ìboost::function_types‚È‚çŠÖ”‚ÌŒ^‚©‚çA–ß‚è’l‚âˆø”‚ðŽæ‚è‚¾‚¹‚é‚©‚ç
‚»‚ê‚Æenable_if‚Å“ÁŽê‰»‚µ‚Ä‚â‚é•û–@‚à‚ ‚é

#include <iostream>
#include <boost/function_types/result_type.hpp>
#include <boost/type_traits.hpp>
#include <boost/typeof/typeof.hpp>
#include <boost/utility.hpp>

void func_v() {}
int func() { return 0; }

template <
@@typename sig
@, class Enable = void
> struct C { void f() { std::cout << "func\n"; }@};

template <typename sig>
struct C< sig
@@@ , typename boost::enable_if<
@@@@@@ typename boost::is_same<
@@@@@@@@ typename boost::function_types::result_type<sig>::type
@@@@@@@ , void>::type>::type
@@@@ >
{ void f() { std::cout << "void func\n";} };

int main() {
@@C< BOOST_TYPEOF(func_v) >().f();
@@C< BOOST_TYPEOF(func) >().f();
}


ŽŸƒy[ƒW
‘±‚«‚ð•\ަ
1‚ð•\ަ
ÅVƒŒƒX•\ަ
ƒXƒŒƒbƒh‚ÌŒŸõ
—ÞŽ—ƒXƒŒˆê——
˜b‘è‚̃jƒ…[ƒX
‚¨‚Ü‚©‚¹ƒŠƒXƒg
¥ƒIƒvƒVƒ‡ƒ“‚ð•\ަ
‰É‚‚Ԃµ2ch

4995“ú‘O‚ÉXV/84 KB
’S“–:undef