শেয়ারড_পিটার কোথায়?


103

শেয়ারড_পিটারটি কোথায় রয়েছে তা অনুসন্ধানের জন্য বেশ কয়েক ঘন্টা চেষ্টা করার পরে আমি এখনই হতাশ। আমি যে উদাহরণগুলি দেখছি তার মধ্যে কোনওটিই শিরোনামকে shared_ptr(এবং কাজ করে) অন্তর্ভুক্ত করার জন্য সম্পূর্ণ কোড দেখায় না । সহজভাবে বিবরণী std, tr1এবং <memory>কিছুতেই সহায়তা করছে না! আমি বুস্টগুলি ডাউনলোড করেছি এবং সমস্ত কিছু কিন্তু এখনও এটি প্রদর্শিত হয় না! কেউ আমাকে ঠিক কোথায় এটি খুঁজে পেতে বলে সাহায্য করতে পারেন?

আমার হতাশাগুলি ছড়িয়ে দেওয়ার জন্য ধন্যবাদ!

সম্পাদনা: আমি দেখছি আমার শিরোনাম পরিবর্তন করা হয়েছে। এর জন্যে দুঃখিত. সুতরাং ... এটিও কারণ এটি আমার কাছে পরিষ্কার ছিল না যে ভাগ করা_পিটারটি "সি ++ সংস্করণ নির্ভর" -> সে কারণেই আমি আমার পরিবেশটি বর্ণনা করি নি -> সম্ভবত এটি কেন খুঁজে পাওয়া আমার পক্ষে এত কঠিন ছিল so

আমি এমএসভিএস ২০০৮ এ কাজ করছি।

সম্পাদনা 2: আমি জানি না কেন, তবে আমি ভাগ করা_সেপ্টারের জন্য সর্বত্র সন্ধান করার সময় [মেমরি] এবং [বুস্ট / টিআর 1 / মেমরি এইচপি] এবং [বুস্ট / টিআর 1 / টিআর 1 / মেমরি] অন্তর্ভুক্ত করেছিলাম .. অবশ্যই, আমি পারিনি 'টি।

সমস্ত প্রতিক্রিয়া জন্য ধন্যবাদ।


3
সম্ভবত আপনি যদি আপনার সেটআপটি সঠিকভাবে বর্ণনা করতে পারেন তবে কি
সংকলকটি

7
আপনি সি ++ 0x shared_ptrএ না থাকলে স্ট্যান্ডার্ডের অংশ নয়। এটি এতটাই সাধারণ যে কেউ কেউ এটিকে মান হিসাবে বিবেচনা করবে যদিও এটি এখনও না।
বিলি ওনিল

4
আপনি কীভাবে মনে করেন যে আপনার পরিবেশটি 7.5 বিট ডিশওয়াশার চিপের জন্য, 128 বিটের মেইনফ্রেমের মালিকানাধীন সংকলক, বা জিসিসির এক্সকোড সংস্করণ কিনা তা জেনে আমাদের এই প্রশ্নের জবাব দেওয়া উচিত?
এসবিআই

আমি যে সমস্যার মুখোমুখি হয়েছিল সে সম্পর্কে কিছু তথ্য যুক্ত করতে .. আপনি যদি সি ++ 0x স্ট্যান্ডার্ড দিয়ে সংকলন করতে চান তবে আপনাকে g ++ এর আর্গুমেন্ট হিসাবে "-std = c ++ 0x" যুক্ত করতে হবে।
মিতাল ভোড়া

1
আপনি যদি এমএসভিসিতে থাকেন তবে আপনার কেবলমাত্র "# অন্তর্ভুক্ত <মেমরি>" দরকার (জিসিসির জন্য, আমার অনুসন্ধানের জন্য একটি সিএমকে ফাইন্ড () রয়েছে যাতে আমি <বিস্ট / শেয়ারড_ptr.hpp> বনাম <অন্তর্ভুক্ত করার জন্য প্রিপ্রসেসর সংজ্ঞা ঘোষণা করতে পারি) tr1 / shared_ptr.h> প্রথম পছন্দ হিসাবে tr1 হওয়া পছন্দ - নোট করুন যে বুস্টটি "hpp" এবং tr1 ".h" রয়েছে - জেন্টু / ফেডোরা / ডেবিয়ানে যাচাই করা হয়েছে - এবং অবশ্যই নিশ্চিতও হন # অন্তর্ভুক্ত <মেমরি> মেমোরি ম্যানেজমেন্টের জন্য পৃথকভাবে)
HidekiAI

উত্তর:


168

কমপক্ষে তিনটি জায়গা রয়েছে যেখানে আপনি সন্ধান করতে পারেন shared_ptr:

  1. যদি আপনার সি ++ বাস্তবায়ন সি ++ 11 (বা কমপক্ষে সি ++ 11 shared_ptr) সমর্থন করে তবে std::shared_ptrএটিকে সংজ্ঞায়িত করা হবে <memory>

  2. যদি আপনার সি ++ বাস্তবায়ন সি ++ টিআর 1 লাইব্রেরি এক্সটেনশানগুলিকে সমর্থন করে, তবে std::tr1::shared_ptrসম্ভবত <memory>(মাইক্রোসফ্ট ভিজ্যুয়াল সি ++) বা <tr1/memory>(জি ++ এর লিবিস্টডিসি ++) থাকবে। বুস্ট একটি টিআর 1 বাস্তবায়নও সরবরাহ করে যা আপনি ব্যবহার করতে পারেন।

  3. অন্যথায়, আপনি বুস্ট লাইব্রেরিগুলি পেতে এবং ব্যবহার boost::shared_ptrকরতে পারেন , যা পাওয়া যাবে <boost/shared_ptr.hpp>


3
ভিএস ২০০৮-এর জন্য, আপনি কি "ফিচার প্যাক" পেয়েছেন বা এসপি 1 ইনস্টল করেছেন? যদি তাই হয় তবে এখানে অংশ 2 আপনার জন্য প্রযোজ্য, নাম স্থানটি ব্যবহার করুন tr1
কেট গ্রেগরি

ধন্যবাদ। এটি ম্যাজিকের মতো কাজ করে। কেন জানি না, তবে আমি <স্মৃতি> এবং <বুস্ট / ট্র 1 / মেমোরি hpp> এবং <বুস্ট / ট্র 1 / ট্র 1 / মেমরি> অন্তর্ভুক্ত করে শেয়ার_সেপ্টারের সর্বত্র খুঁজছিলাম .. অবশ্যই, আমি পারিনি। আবার ধন্যবাদ.
জেক

সি ++ থেকে সংক্ষেপে সরে এসে আমি অবাক হয়ে জানতে পেরেছিলাম যে (ঝনঝন v3.1 তে) shared_ptrএখনও একটি tr1নেমস্পেসে বসে আছে । এই সম্পর্কে কোন চিন্তা?
হাইওয়েলন

3
@ হাইওলন: আপনি কি সংকলন করছেন -std=c++11?
জেমস ম্যাকনেলিস

@ জেমসম্যাকনিলেস ইয়েসির, দুর্ভাগ্যক্রমে অন্যান্য নির্ভরতাগুলির সাথে কিছুটা অসন্তুষ্টি হয়েছিল এবং আমি চালিয়ে যেতে পারিনি (সময়ের সীমাবদ্ধতা)। যদি -std = c ++ 11 টি কৌশল হয় তবে আমি যখন প্রকল্পে ফিরতে সক্ষম হই তখন আমি আত্মবিশ্বাসের সাথে চালিয়ে যেতে পারি। ধন্যবাদ.
হাইওয়েলন


6

বৈশিষ্ট্য প্যাক আপডেট সহ ভিএস ২০০৮-এর জন্য, শেয়ারড_পিটার নামের স্থানটি স্টাড :: টিআর ১ এর অধীনে পাওয়া যাবে।

std::tr1::shared_ptr<int> MyIntSmartPtr = new int;

এর

আপনার যদি C:\Program Files\Boost\boost_1_40_0আইডিই সেটিংসে ইনস্টলেশন পাথ (উদাহরণস্বরূপ @ ) যুক্ত করে থাকে:

#include <boost/shared_ptr.hpp>

3

Your'e Bor খুঁজছেন তাহলে বুস্ট এর shared_ptr , আপনি সহজেই দ্বারা উত্তর পাওয়া যেত shared_ptr googling , দস্তাবেজ লিঙ্ক অনুসরণ এবং যেমন সম্পূর্ণ পরিশ্রমী উদাহরণ টেনে এই

যাই হোক না কেন, আপনার জন্য এখানে একটি সর্বনিম্ন পরিপূর্ণ কাজের উদাহরণ যা আমি সবেমাত্র হ্যাক করেছি:

#include <boost/shared_ptr.hpp>

struct MyGizmo
{
    int n_;
};

int main()
{
    boost::shared_ptr<MyGizmo> p(new MyGizmo);
    return 0;
}

জন্য জন্য #includeহেডার এটি, লাইব্রেরি স্পষ্টত অনুসন্ধান পাথ হতে হবে। এমএসভিসিতে আপনি এটি প্রকল্প সেটিংস> কনফিগারেশন বৈশিষ্ট্য> সি / সি ++> অতিরিক্ত অন্তর্ভুক্ত ডিরেক্টরিতে সেট করেছেন। আমার ক্ষেত্রে, এটি সেট করা আছেC:\Program Files (x86)\boost\boost_1_42

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.