在C ++中重载通用引用

时间:2015-11-23 13:41:25

标签: c++ c++11

我正在阅读Scott Meyers撰写的有效的现代C ++从第27项超载通用参考文献。

我正在编译ulimit -s

中的代码
VC++ 2012

我面临编译错误,如下所示:

#include <iostream>
#include <type_traits>

template <typename T>
void logAndAddImpl(T&& name, std::false_type) {
    std::cout << " Reference type " << std::endl;
}

template <typename T>
void logAndAddImpl(int Idx, std::true_type) {
    std::cout << "int type" << std::endl;

}


template<typename T>
void logAndAdd(T&& name) {
    logAndAddImpl(std::forward<T>(name), std::is_integral<typename std::remove_reference<T>::type>());
}


int main() {
    int i = 10;
    logAndAdd(i);

    return 0;
}

0 个答案:

没有答案