FAQ Database Discussion Community


Can't use std::unique_ptr with T being a forward declaration

c++,c++11,unique-ptr,forward-declaration
Now first, I am aware of the general issues with unique_ptr<> and forward declarations as in Forward declaration with unique_ptr? . Consider these three files: A.h #include <memory> #include <vector> class B; class A { public: ~A(); private: std::unique_ptr<B> m_tilesets; }; C.cpp #include "A.h" class B { }; A::~A() {...

Declaration of cross-recursive rules

c++,recursion,static,boost-spirit,forward-declaration
I declared rules of my grammar as static const. That worked fine till I tried to use cross-recursive rules (rule1 is defined using rule2 which is defined using rule1). The source code still can be built, but segfaults on parsing source containing such cross-recursive case. Here's a simplified code of...

Assigning a function pointer with a forward-declared prototype in Nim

function-pointers,forward-declaration,nim
I want to assign a Window Procedure to a Window Class structure: var wndClass : WNDCLASS; wndClass.lpszClassName = CLASSNAME; wndClass.lpfnWndProc = WndProc; wndClass.hInstance = hInstance; I can't assign WndProc yet because it hasn't been declared. When I use a forward declaration (described here): proc WndProc(hWnd: HWND; msg: WINUINT; wParam: WPARAM;...

Change the meaning of code by replacement of forward declaration with include

c++,include,forward-declaration
Google C++ Style Guide states that In extreme cases, replacing an #include with a forward declaration can silently change the meaning of code. Can you please help me to find some examples? ...

Is there any way to declare mutual friend functions for two classes

c++,circular-dependency,forward-declaration,friend-function
class CDB; class CDM { public: friend CDB& CDB::Add(const CDM&); CDM& Add(const CDB&); }; class CDB { public: CDB& Add(const CDM&); friend CDM& CDM::Add(const CDB&); }; This code gives me the error : error C2027: use of undefined type 'CDB'. How to resolve this....

How to declare an extern array of template class objects with a forward declared template class in C++?

c++,templates,extern,forward-declaration
Consider the following existing code (which compiles and executes as expected): /* File foo.h */ extern const struct Foo bar[]; /* Definition in foo.cpp */ struct Foo { Foo(int i) : Foo(bar[i]) {} int x; }; I now want to change Foo to a template class, such that: template <typename...

Why are these global variables when they have namespace scope?

c++,namespaces,scope,global-variables,forward-declaration
In the following code, this is calling the variables in the globals.cpp namespace actual global variables. globals.h #ifndef GLOBALS_H_ #define GLOBALS_H_ namespace Constants { // forward declarations only extern const double pi; extern const double avogadro; extern const double my_gravity; } #endif globals.cpp namespace Constants { // actual global variables...

How do I forward declare an object in a class? (C++)

c++,class,forward-declaration
So basically, I have a global class and a player class. They are both defined in their ObjPlayer.h/ObjPlayer.cpp and same for the global. But how do I forward declare an instance of ObjPlayer within ObjGlobal? Here is what I have: (Defining the constructor, the class deceleration is elsewhere.) //Create all...

No warning on deleting a forward declared pointer (Visual Studio)

c++,visual-studio-2012,memory-leaks,forward-declaration
Deleting forward declared pointers leads to undefined behavior. Examples: https://gist.github.com/jatinganhotra/4144778 http://stackoverflow.com/a/14382111/399908 However, my Visual Studio (VS2012) compiler doesn't warn me about it. Is this an unfixed VS2012 compiler bug? Did I disable (or never enable) the corresponding warning? Is this specific to some project setting? Visual Leak Detector hinted me...

Function definition preceeds declaration in namespace

c++,namespaces,forward-declaration
The following bit of code, in which a function definition predeeds its declaration, compiles in VS .NET 2008 and Cygwin gcc 4.8.2. Is it legal? namespace N { int init() // Definition appears first { return 42; } } namespace N { int init(); // followed by declaration const int...

array of forward declared struct in another struct

c,struct,forward-declaration
I am trying to forward declare a struct A and define a struct B that contains an array of A. I am getting error stating 'incomplete type not allowed' This is what I have: struct A; struct B { // something struct A x[10]; // This where I get the...

How do I get over this forward declaration error?

c++,forward-declaration
I'm trying to do a barebones example of a class A that provides callback methods to a dependent class B by passing a reference to itself. The best I've produced is the following: a.h #ifndef A_H #define A_H #include "b.h" namespace b { class ClassB; } namespace a { class...

How to deal with namespaces in forward declarations? [duplicate]

c++,namespaces,forward-declaration
This question already has an answer here: How to forward declare a class which is in a namespace 1 answer Hi this is my straight forward question, because i dont know how to explain my question with some example. Question: How to deal with namescpaces in forward declarations where...

Forward declarated class with default value

c++,default-value,forward-declaration
I have a forward declaration but want to have a instatance of the forward declarated class as default value. So my code looks more or less like this: bar.h class Foo; class Bar { public: Bar(); void test(Foo foo = Foo(7)); } and foo.h class Foo { public: Foo(int val);...

Forward Declaring and Dynamically Allocating an Array of Pointers of that Declared Class?

c++,forward-declaration
I have been having this problem all day with my C++ lab. As far as I can tell, I have everything working, except for this one clause that my professor has stipulated in our assignment: The order of class declarations in your source file is InventorySystem, InventoryItem, Product, eProduct. Since...

Trying to befriend a function of Derived in Base - Why doesn't it work?

c++,inheritance,friend,forward-declaration,friend-function
My first post here. I have two classes - Base and Derived (derived publicly from Base). In Derived, I have a function printAsFriend. Compiler is unhappy with this. Why? Methods in other classes can be befriended. Why doesn't it work with a derived class? It works OK if I remove...

Should one forward declare classes from a namespaced library?

c++,design,namespaces,forward-declaration
I'm designing a C++ library that will be placed inside a namespace. If the users of my library only need a forward declaration of one of my classes and since you can't do forward declarations of things inside a namespace, e.g. class ns_name::class_name;, should I tell them to include the...

Is there a syntax for incomplete nested type without a forward declaration?

c++,c++11,nested,forward-declaration
The following program produces a diagnostic error. #include <memory> class Containing { // class Nested; // [1]: This line seems required. typedef std::shared_ptr<class Nested> Ptr; class Nested { Ptr & ptr (); void foo (const Ptr &p) { p->ptr() = ptr()->ptr(); // [2]: Error here without [1] } }; };...

Forward declaration of type defined with `using`

c++,boost,forward-declaration
Let's assume I have such situation: //A.hpp #include "B.hpp" #include "C.hpp" #include "D.hpp" using A = boost::variant<B, C, D>; //B.hpp #include <memory> class A; using AA = std::unique_ptr<A>; This give me following error: error: typedef redefinition with different types ('boost::variant<B, C, D>' vs 'A') I can't omit #include's in A.hpp...

Can't access object variables passed in a std callback

c++,forward-declaration,dereference
I have a callback function (ouside my class) which i'm passing a BassMusicPlayer class object as parameter. If do a breakpoint inside it, i can see all the variables and methods in 'self'. If i try to read/print those values, it won't compile and will give error C2027: use of...

Namespaces with multiple cyclic inclusion

c++,header,namespaces,include,forward-declaration
I've 3 classes that belong to a namespace "MyNS". "A" uses the "B" and "C", while both "B" and "C" use "A". Here are the structure of my headers: //mynamespace.h #ifndef SOMENAMESPACE_H #define SOMENAMESPACE_H namespace MyNS { class A; class B; class C; } #endif /*******************************************************/ //A.h #ifndef A_H #define...

Understanding C struct

c,pointers,struct,function-pointers,forward-declaration
I'm trying to understand what's happening in the following C struct: /* EXCERPT from LINES 59-90 */ /* parse.h * Copyright (c) 2011, Peter Ohler * All rights reserved. */ typedef struct _ParseInfo { // used for the string parser const char *json; const char *cur; const char *end; //...