Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 8 years ago.
Improve this question
I recently started to make a game with a friend, but we now encountered a problem with unsorted lists. I checked this site and other forums, but nothing seems to work.
Here's the code: http://pastebin.com/nx8sf6T2
And the compiler error: http://pastebin.com/fdQ7B0Dx
(And for compiling I use "clang++ -std=c++11 main3D.cpp", in case anyone is wondering)
hash<point> must be known at the time of instantiation of std::unordered_set<point>, and that requires point to be known before hash<point>:
struct point
{
// contents...
};
namespace std
{
template<>
struct hash<point>
{
// contents...
};
}
struct line
{
std::unordered_set<point> points;
// contents...
};
namespace std
{
template<>
struct hash<line>
{
// contents...
};
}
Demo
Related
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 12 months ago.
Improve this question
I currently have a namespace set up like this:
SomeClass.h
namespace somenamespace {
class SomeClass {
public:
foo();
}
}
SomeClass.cpp
namespace somenamespace {
SomeClass::foo() {
somehelperfunction();
}
}
void somehelperfunction() {
std::cout << "hejflsdjf\n";
}
Without changing my header file, I cannot find a way to implement this helper function in a way which allows my class implementation to access the helper function. I was under the impression that as long as the helper function was in the same file I would be able to access it within the class implementation. But I get a "undeclared identifier" error when trying to build.
Functions must be declared before called.
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 2 years ago.
Improve this question
game.h:
enum Game_state { MAIN_MENU, /*...*/ };
namespace list { class Linked_list { public: Linked_list() {} }; }
class Game {
public:
static Game_state state;
static list::Linked_list<Obj> objs;
};
Game_state Game::state = MAIN_MENU;
list::Linked_list<Obj> Game::objs = list::Linked_list<Obj>();
This gives me the linker error: multiple definition of Game::state (and Game::objs).
If I take out the type specifiers it gives me the compiler error: 'state' in 'class game' does not name a type (same for objs).
All I need is to initialize these members.
I'm using mingw on 32 bit windows 10.
You have to move those definitions into a translation unit (cpp file). Otherwise you will redefine them every time you include the header file somewhere, violating ODR.
Put the definitions of 'game::stat' and 'game::objs' in a *.cpp file and link against it.
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 3 years ago.
Improve this question
When I compile my files I get this warning :
In file included from AsyncSQL.cpp:8:0:
AsyncSQL.h: In constructor 'CAsyncSQL::CAsyncSQL()':
AsyncSQL.h:192:10: warning: 'CAsyncSQL::m_iCopiedQuery' will be initialized after [-Wreorder]
int m_iCopiedQuery;
^
Here is my AsyngSQL.H http://pastebin.com/u72kyuq7
So what am I doing wrong?
The problem is the order in which you initialize members in the initializer list on line 22,
_SQLResult(): pSQLResult(NULL), uiNumRows(0),
uiAffectedRows(0), uiInsertID(0)
These should appear in the same order as they appear in the class definition. For example:
class test {
test(): foo(1), bar(2) { }
int foo;
long bar;
};
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
can we call static function from constructor of same class.
class a{
static void fun();
a() {fun();}
};
it is giving an error while linking code. I am using visual studio C++, 2010.
Yes you can - as long as you provide a function definition for the static function as well.
I don't really understand the question.
If you provide a function definition as said by Billz and Ogni42, it will work.
The following code does compile, and work:
#include <iostream>
class a {
public:
a() { fun(); }
private:
static void fun();
};
void a::fun() {
std::cout << "BOAP" << std::endl;
}
int main() {
a foo;
return 0;
}
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 5 years ago.
Improve this question
I have a class, defined in a .h like this
#ifndef JLLABOUR_H
#define JLLABOUR_H
class JLLabour{
public:
JLLabour(int, int);
double* recursivefft(double*,int);
void FFT(int*);
~JLLabour();
private:
int width;
int height;
};
#endif // JLLABOUR_H
and in my .cpp I have the definition of my recursive function, the problem is that when I call it again , during compilation it doesnt allow me to continue because the method has not been defined yet. I dont know how to solve this, please help.
#include <JLLabour.h>
double* JLLabour::recursivefft(double* x,int asize){
//operations and declartions...
//...
even = recursiveFFT(sum,m); //<-- the problem is here, in the recursion.
odd = recursiveFFT(diff,m);
// more operations....
return result;
}
}
FYI I am compiling under Linux, using Qt because Im developing a graphic app...
C++ is case sensitive. Your method is called recursivefft not recursiveFFT.