c++ - Nested namespace can't be found in spite of including header file -
i have 2 projects, 1 sample (which compiles without error) , looks (first few lines shown only):
working example
#include "cinder/app/app.h" #include "cinder/app/renderergl.h" #include "cinder/surface.h" #include "cinder/gl/gl.h" #include "cinder/gl/texture.h" #include "cinder/rand.h" #include "cinder/qtime/quicktimegl.h" using namespace ci; using namespace ci::app; using namespace std; class qtimeadvapp : public app { public: void preparesettings( settings *settings ); void setup(); void keydown( keyevent event ); void filedrop( filedropevent event ); void update(); void draw(); void addactivemovie( qtime::movieglref movie ); void loadmovieurl( const std::string &urlstring ); void loadmoviefile( const fs::path &path ); };
note line: void addactivemovie( qtime::movieglref movie );
the other project, needs make use of same library (quicktime opengl within libcinder), tries similar - 1 again extract:
use in project
#pragma once #include "abstractcontent.h" #include "cinder/gl/texture.h" #include "cinder/tween.h" #include "abstracttransition.h" #include "cinder/qtime/quicktimegl.h" namespace th { class videocontent : public abstractcontent { public: videocontent(); ~videocontent(); virtual void setup(); void loadmovie(ci::url url); void loadlocalmovie(ci::fs::path path); void setpreloadedmovie(ci::qtime::movieglref movie);
this 1 throws compiler error: no member named 'qtime' in namespace 'cinder'
notice again virtually identical line: void setpreloadedmovie(ci::qtime::movieglref movie);
in fact, can use full qualified name ci:qtime:movieglref
in first example , compiles fine (as expected).
what on earth going on here? why "use in project" version throw compiler error: no member named 'qtime' in namespace 'cinder'?
just clarity, quicktimegl.h file in turn includes file declares namespace , type def:
namespace cinder { namespace qtime { typedef std::shared_ptr<class moviegl> movieglref;
am missing something? i'm pretty sure i'm including correct header file, before, , trying use qualified namespace still compiler doesn't find definition?
have tried referencing global namespace, ::ci::qtime
rather ci::qtime
? should not make difference, c++ compilers trip on these kind of things.
Comments
Post a Comment