指針重載函數
回答
根據您所包含的內容標題,有以下幾點:
template<class T> complex<T> sin (const complex<T>&); // <complex>
template<class T> valarray<T> sin (const valarray<T>&); // <valarray>
float sin(float); // <cmath>
long double sin(long double); // <cmath>
正如你所看到的,有所涉及模板,儘管這實際上這裏並不嚴格相關。
您只需告知編譯器,[潛力]你想(可能只是出後兩者的)過載:
std::thread((float(*)(float))&std::sin, 2.9);
如果你想避免C-投,適當的C++投是'static_cast' 。 –
@MatthieuM .:我不特別(這裏完全是多餘的;我該怎麼辦,意外拋棄了常量?),但是謝謝。 –
我更喜歡C++演員陣容,因爲演員陣容更加明顯,主觀,我知道:) –
你可以
typedef double (*sind)(double);
std::thread((sind) std::sin,2.9);
你要投的功能指向右側過載的類型:
std::thread((float(*)(float))std::sin, 2.9);
我更喜歡lambda解決方案。它讀取比包含函數指針的任何東西都要乾淨得多。它也會比使用函數指針更快,但這通常不重要。
std::thread([](double x) { return std::sin(x); }, 2.9);
我認爲它應該讀'return std :: sin(x);' –
- 1. C++重載函數指針
- 2. 通過函數指針重載函數
- 3. 過載的指針重載函數
- 4. C++重載函數指針模糊
- 5. 模板函數指針重載
- 6. 函數重載在C++(常量指針)
- 7. 無法將重載的函數指針轉換爲成員函數指針?
- 8. 傳遞重載函數指針作爲參數重載模板函數
- 9. MSVC指向模板參數中重載函數的指針
- 10. 分配重載函數函數指針作爲默認值
- 11. 傳遞一個重載成員函數的函數指針?
- 12. 用於重載成員函數的成員函數指針
- 13. 促進C++重載的函數指針函數對象的
- 14. c函數指針反函數指針
- 15. 指針?指針函數?
- 16. 函數指針指向一個函數指針的函數
- 17. 基於指針與非指針類型如何重載一個成員函數
- 18. 重載運算符采用函數指針作爲參數,如何取回函數指針的參數
- 19. 帶共享指針參數歧義的函數重載
- 20. 函數指針
- 21. 函數指針
- 22. 函數指針
- 23. 函數指針
- 24. 函數指針?
- 25. 函數指針
- 26. 函數指針
- 27. 函數指針
- 28. 函數指針
- 29. 函數指針
- 30. 函數指針
看到http://stackoverflow.com/questions/1353757/how-do-i-refer-to-stdsinconst-valarraydouble – sehe