I have a project where I need to expand some functionality without touching the project I'm using.
The core of the problem is this (I dumbed it down but the core should be clear).
//Layout.h
#ifndef LAYOUT_H
#define LAYOUT_H
#include "Speaker.h"
class Layout
{
    public:
        //unrelated stuff
    private:
        LSS::Speaker temp;
};
#endif
//Speaker.h"
#ifndef SPEAKER_H
#define SPEAKER_H
namespace LSS
{
    struct Speaker
    {
        Speaker(int val1, float val2)
        :some_int(val1)
        , some_float(val2)
        {
        }
        ~Speaker()    
        {
            //do other stuff
        }
         int some_int;
         float some_float;
    };//struct Speaker
}
#endif
I just want to be able to use the struct Speaker (as defined in "Speaker.h") in "Layout.h" without touching "Speaker.h"
If I compile I get following errors:
Error 22 error C2512: 'LSS::Speaker' : no appropriate default constructor > available Layout.cpp 7 1 MyProj
I think that wraps it up - any help would be appreciated, I'm pretty new to c++
Edit: in recreating the issue I made a TYPO (LSS: instead of LSS::). Updated the compiler error


LSS:Speaker temp;that should beLSS::Speaker temp;(note the :: instead of :)