y‰SŽÒнŒ}zC/C++Ž ..
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