nullptr

    3熱度

    1回答

    考慮下面的代碼: #include <iostream> template<typename T> // generic void f(T) { std::cout << __PRETTY_FUNCTION__ << std::endl; } template<typename T> // overload for pointer types void f(T*) {

    5熱度

    4回答

    假設下面的代碼片段: template <class T> void fct(T* a, T* b){ // do something } A a; fct(&a, nullptr); // Problem here! 這使得麻煩,因爲調用的參數是A*類型和nullptr_t所以編譯器不能推斷出模板參數T。 一般情況下,我可以想像幾個想法如何解決這個問題: 定義A* b =

    3熱度

    1回答

    我試圖理解爲什麼unique_ptr有nullptr_t構造 constexpr unique_ptr::unique_ptr(nullptr_t); 我曾以爲這是因爲正常的一個參數的構造函數是明確的,因此會拒絕nullptr值: explicit unique_ptr::unique_ptr(pointer p); 但是,當我建立一個例子是細編譯器: namespace ThorsAnv

    7熱度

    2回答

    實施nullptr我嘗試的正式實施nullptr 我知道有nullptr和std :: nullptr_t由編譯器的支持,這種實現是meaningless.I我只是想學習C++。 在我的電腦上,GCC4.9.1支持-std = C++ 03和-std = C++ 11,即使成功的Online @ ideone.com GCC4.3.2也能正常工作。 但在VS2013線125變error2440,轉

    2熱度

    3回答

    我有一些指向某些粒子對象的指針數組:Particle* particles[ TOTAL_PARTICLES ];其中TOTAL_PARTICLES = 10;。 當我運行下面這段代碼, for(Particle* p : particles) { cout << "Attempting to create particle!\n"; p = new (nothrow) Pa

    -1熱度

    1回答

    我需要製作一個指向類的對象的指針。但是,它首先被聲明爲nullptr。我需要讓它指向那個階級。 在此,我宣佈他們爲nullptr: #pragma once #include "Window.h" #include "Game.h" #include "Map.h" #include "Input.h" class SN { public: SN(); Windo

    6熱度

    2回答

    我們的項目使用C++ 11/14,並且我們希望使用nullptr而不是0或NULL帶指針,即使0(作爲整數字面量)是允許的。 我有以下代碼: int main() { int *ptr1 = nullptr; // #1 int *ptr2 = 0; // #2 } 如果我與海灣合作委員會(5.3.0)和#2旗-Wzero-as-null-pointer-consta

    0熱度

    2回答

    我有一個函數可以解出4個運動方程之一。參數是浮動,有沒有辦法區分一個NULL參數和值爲0.我已經讀過這個主題,看起來NULL和0是相同的。我想將0與「虛無」形式區分開來的原因是因爲0值賦值而「虛無」表明我們不知道該值是什麼。 float doSomething(float& foo, float& bar, float& goo, float& baz){ if(foo == (inse

    6熱度

    1回答

    有點史前史。 我已經寫了很長一段時間的遊戲引擎。它分爲幾個靜態庫,如「utils」,「rsbin」(資源系統),「窗口」,然後鏈接到一個可執行文件中。 這是一個跨平臺引擎,被編爲Windows和Android版。 在Windows下,我使用MinGW進行編譯。在Android下,使用CCTools,它是本地gcc的接口。 其中一個基類是utils::RefObject,它代表了一個類似於Windo

    15熱度

    2回答

    我想知道,下面的代碼是否會導致不確定的行爲: #include <cstddef> #include <cstdio> struct IA { virtual ~IA() {} int a = 0; }; struct IB { virtual ~IB() {} int b = 0; }; struct C: IA, IB {}; int